There's a time stamp at 0x00A0. If this stamp is higher then the real time clock of the cartridge, time-based events won't happen anymore.
After changing the battery of the cartridge, the rtc resetts. So the stamp in the save file is higher and time-based events are disabled.
Maybe it'll work if you just resett that value at 0x00A0?
I read somewhere about this, I'll try to find that site.