Hallo,
So wie ich das sehe muß Du in der resetroutine den Startwert des Timers in TCNT1 laden
(in deinem Beispiel highvalue und lowvalue).
Das machst Du zwar schön in dem Interrupthandler (ist ja korekt, weil er nachdem er ablaufen ist, neu belegt werden soll), aber am Anfang machst Du das nicht.
Meiner Meinung nach wird bei Deinem Beispiel nie ein Interrupt ausgelöst.
Schreib also die ersten 4 Zeilen vom TIM1_OVF nochmal irgendwo in den resethandler

Was mir sonst noch aufgefallen ist, Deine loop: Schleife wozu schiebst Du die Register hin und her?
in meinen Augen kannst Du auch in der resetroutine die Register R1 bis R8 belegen und gut ist es.
Du tust die sowieso nirgendwo mehr verändern.
Du sendest zahlen 1-9 an UART, müßen die nicht in ASCII format vorliegen ?
Das wäre das wichtigste.

Wenn ich was falsch geschrieben habe, wäre ich froh wenn man micht darauf aufmerksam macht.
Ich kann Dir nur das oder das empfehlen.
Dort findest Du genug Beispiele wie man sowas auf die Beine stellt.

viel Erfolg
Sebastian