I copied your code changed nothing and it would work perfectly except for this line:
alarm.Sound = new Uri("/Ringtones/Ring01.wma", UriKind.Relative);
which makes it crash EVERYTIME on adding the alarm if that line is not removed (or the file is added to the phone)
Just comment it out and your code should work.
0
solved An error when i create an alarms on windows phone 8?