I have CME 7.0(0). When the time changed, all my 7960 phones updated correctly. All my 7961 phones did not. The 7961 phones are +60 minutes. All phones (various sites) are plugged into a 3560 switch with a 2801 router. The 2801 router than has a 10meg private connection to my 3845 router that is also running CME. All the switches and routers have the correct time. I'm running out of ideas on how to update the time on just the 7961 phones.
The time is sent via SCCP to the phones in GMT. Their default gateway isn't relevant.
Phones will download a configuration file to tell them the timezone so they can subtract/add the right time to the GMT time.
So if your gateway has the wrong time 'show clock', fix that first.
If it has the right time, make sure your phones are on the latest phone load. "show ephone phoneload" should confirm that they're actually running the firmware you expect.
If they're on the right firmware, make sure they're downloading the files. 'debug tftp events'. You should be able to reset the phone and see that it requests a SEP.cnf.xml file and the router should send a file back. This is indicated by 'Finished .'
I'd go from there.