Hallo,

als erstes würde ich beim lesen/schreiben des Timerregister immer beide Register ansprechen also TCNT1H und TCNT1L, und nicht nur mit TCNT1L, denn da kann es auch zu unvorhergesehen ergebnissen kommen, wenn man nur den halben Wert bearbeitet. Timer 1 hat 16Bit Register !
Am besten noch die Vorgabe von Basscom verwenden:

Timer1 = 0 bzw. auslesen mit Lopulse = Timer1

Die Werte die zurückgegeben werden sind die Timerwerte, es wird begonnen zu zählen wenn der Eingang auf 1 ist, und gestoppt wenn er 0 wird, danach wird das Timerregister ausgelesen.
Um die Zeit zu erhalten kann man sich aus der CPU-Frequenz und dem Prescaler des Timers dessen Takt ausrechnen, und mit dem Ergbnis des Timers multiplizieren.

CPU 8MHZ, Prescaler = 64, dH. der Timer läuft mit 125kHz.