Well, here's the issue - the way repeating alarms are stored is as a constant offset of minutes from midnight.
As a time offset in minutes from midnight, all of the alarms went off at the "correct" time, since a hour disappeared completely, for instance, 240 minutes after midnight was 5 am not 4 am as it would normally be. As a time in English description, they went off an hour late. In order to go off at the "correct" time by English description of these two days each year, I'm going to have to do a *lot* more calculations, and I'll have to change the representation of repeating alarms.
The English description is created based on a normal offset on a normal day, ie 240 minutes after midnight is almost always 4 am.
If you unset and set the alarms again, they'll go off correctly.