Una pregunta y una sugerencia, gran Pocher.
¿No crees que la inicialización de la precarga del timer debería ser lo primero que se hace tras comprobar que estás en la centésima interrupción?. Es que lo pones después de varios cálculos y printf que comen bastantes ciclos de reloj, y puede que te esté distorsionando las medidas.
Creo que si va justo detrás del if y luego haces los cálculos y los printf, no habrá error ni diferencias entre la centésima interrupción y el resto.
La sugerencia es la siguiente: si utilizas 4MHz (1MIPS), puedes poner un prescaler de 8 (125KIPS) y una precarga de 131, para que las interrupciones salten cada 125 ticks del reloj, o sea, cada milisegundo. De esta manera conseguirás el segundo exacto y sin decimales.