The timing circuit is probably based on a quartz crystal. That circuit might have some capacitors in it though, and that might be throwing the resonance of the circuit off if the caps have dried out and gone bad.
Bad power supply caps might be causing a lot of ripple in the supply voltage, and the counting circuit could be miscounting some of the ripples as clock pulses.
It’s also possible that it uses the 60 Hz AC line as its timebase. It used to be that they adjusted the AC line frequency to be almost exactly 60 Hz in the long term, so that old fashioned clocks using synchronous motors would keep time properly. In the short term, the clocks might be a little off, but they would adjust the generator speeds as necessary periodically so that the long term error was very low. In general, heavy loads would bog down the frequency during the day, and they’d speed things up at night.
Synchronous motor clocks have mostly been replaced by digital clocks that have their own built-in timebase, and a lot of folks began to think that they were wasting a lot of effort (and money) keeping the AC line frequency so accurate in the long term. But no one really knew for certain exactly how many folks really did still depend on the line frequency’s accuracy. So they decided to run an experiment. They would let the frequency drift as it usually does, but they wouldn’t try to hard to correct it in the long term. Then they would see who complained about it.
The experiment was supposed to start in 2011 and run for at least a year. I never heard about it ending, though, and I’m not sure that they actually keep the line frequency accurate any more. It may be possible that this is what is throwing your clock off.