Just for grins, try doing 2 successive writes to the RTC with a 10ms pause in between.
I've ran into these kind of issues whenever the hours.6 bit is changed in the RTC.
Do this when you 1st initialize the RTC on startup and every time you write to the RTC.
The issue is when the 12/24hr mode bit is changed (hours.6).
From the DS
"All hours values, including the alarms, must be reinitialized whenever the 12/24-hour mode bit is changed."
Bookmarks