¿Esa señal toma valores negativos? porque por lo que veo en el data la entrada del timer1 no está preparada para soportar tensiones negativas.
A ver si puedes colgar el .hex para poder simularlo pq no me compila el código en ccs,me dice que hay por ahí un caracter ilegal,aunque no lo encuentro por ningun sitio

De todas formas te comento un par de cosas.
La precarga del timer0 con el valor 177 únicamente la haces cada 100 overflows,lo cual hace,según mis cuentas,que interrumpa cada 36.47 ms,y tras 100 interrupciones,la 101 sea transcurridos unos 11 ms más los 500 ms del delay.
No recuerdo bien,pero ccs usa los timers para el cálculo de los delays,por lo que no es recomendable que dentro de una rutina de atención al timer se incluyan retardos de este tipo.
Dejando aparte el posible mal funcionamiento que el delay te pueda ocasionar,ten en cuenta que,si no me equivoqué en las cuentas,estás representando en el lcd la cantidad de pulsos recibidos en un tiempo igual a 36 ms x 100 = 3.6 seg,es decir,que si tu señal de entrada es de 1 Hz,ahí parece estar el motivo por el que estás leyendo 3 Hz.
Prueba a recargar el timer0 fuera del if