Ein Problem für die Genauigkeit kann es schon sein wenn der Timer Startwert jedesmal per Hand gesetzt wird. Mit den vorteiler 64 mag das gerade noch gehen, es kann aber gelegentlich Fehler geben.
Der Timer 1 hat auch einen mode bei dem die Hardware immer nur bis zu einem bestimmten Wert Zählt (CTC Mode).

Die Variablendeklaration gehört vor den eigentlichen Code. Die ISR kommt in der regel ganz ans Ende, nicht irgendwo in die Hauptschleife, und dazu noch mitten in ein IF... . Ein wunder das der Compliler sich da nicht beschwert.