This sounds like the EOW counter problem, the time / date data sent from the satellites to your GPS is contained in two registers, one counts seconds and the other counts weeks, when the seconds counter gets to the end of a week, it increments the week counter and resets to zero. Originally the week counter only had 10 bits in it so it could only count 1024 weeks (about 20 years) before it resets. The counters started from January 6, 1980 so they went back to zero on August 22, 1999. In later models the week counter was increased to 13 bits so the problem won't occur for 150+ years but that won't help the old models because they can only use 10 bits. Because of the End Of Week counter problem, old units must have a current date no more than 10 years away from the real date, if they don't, they will never display the real date. One fix for this is to set the unit back to factory default, I'm guessing that your 'resets' was doing this, it usually take the form of :-
1 Switch off
2 Press MARK and power on together.
3 When it says "do you wish to delete data" it should default to YES.
4 Switch it to NO,
5 then switch it back to YES,
6 then switch it back to NO,
7 then switch it back to YES
8 finally press ENTER
After the above it will take some time to find satellites again because the unit will 'Cold Start' (no almanac, time, position etc.), if the time remains unchanged or is more than 10 years in the past or the future, there is only one other fix I know of, it involves downloading a GpsEow.exe program onto a computer that is connected to your GPS12 via an RS232 com port, this program will send a new date to your device. I have used this program on a GPS38 unit and it did install a new date that was roughly 1 year into the future, but I have no knowledge about whether it work on a GPS12