Der Timer muss mit 3036 vorgeladen werden. Wenn er überläuft, wird die Interruptroutine gestartet. Der Timer muss dann natürlich neu beladen werden, da er sonst den wert 0 hat! Das dürfte klar sein. In deinem Code steht unten in der Routine:

'Timer1 = Timervorgabe
Das ' verhindert das die Anweisung ausgeführt und der Timer neu beladen wird, deshalb entsteht jede Sekunde ein Fehler von 0,048sec! Es müsste rein rechnerisch ein Fehler von 172,8 sec pro Stunde entstehen.

MFg Moritz