It looks like timer0 is off by about 30%.
I attempted to generate a 1Hz square wave on an I/O pin by waiting for timer0 to reach the next (32768/2) count and then toggling the line state. This resulted in 1..333 Hz.
TCLR PRE = 0 and PTC = 0. Automatic reload with 0.
Could this timer be off by that much? Its based on the internally generated 32khz clock.