As jharris says, when the system is up and running it uses another clock, the system clock, which is sepatate from the cmos clock used to keep the time when your computer is of.
When linux boots up it reads the cmos clock found on the motherboard and copies the time to the system clock. When shutting down linux writes the current system time to your cmos. This is done to correct your cmos clock which is much less accurate than the system clock.
I have no clue of what in your linux might cause this problem. The symptoms almost sound like some kind of meaningless virus