Beim Programm sind da noch ein Kleinigkeiten nicht optimal:
Das Disable Interrupts in der ISR sollte keinen Effekt haben. In der ISR sind weitere Interrupts ohnehin gesperrt. Am Ende der ISR werden die Interrupts wieder freigeben. Die Timer= Überlauf ISR ist recht langsam und verursacht damit eine leicht störende Pause - daher die Häufung von bestimmten Werten. Dazu kann es bei der Berücksichtigung der Zahl der Überläufe noch zu einem Problem kommen wenn beide Interrupts fast gleichzeitig auftreten. Das kommt eher selten vor, kann aber passieren und dann einen deutlichen Fehler verursachen.
Besser wäre es die Zeitmessung mit dem 16 Bit Timer1 zu machen, oder ganz ohne Interrupt einfach in einer Zählschleife im Hauptprogramm.