Hallo Henry,
ich denke, dein Ansatz mit der Timer ISR wird nicht zum Ziel führen.
Was du mit dem INT0 und dem Timer0 praktisch machst ist eine Nachbildung der Input Capture Funktion.
Die kannst du mit dem Timer1 auch direkt benutzen. Dabei wird dann der Timer auomatisch gestartet, wenn der Impuls kommt. Schau mal in die Hilfe von Config Timer1.
Du kannst es auch mit INT0 und Timer hinbekommen. Allerdings musst du den Timer dann frei laufen lassen, also keine Timer Overflow ISR benutzen.
Bei der Start Flanke des Impulses startest du den Timer und setzt ihn auch 0 (ich glaube dass das beim Starten nicht automatisch passiert). Bei der Stopp Flanke des Impulses liest du den Timer Wert aus und stoppst den Timer.
Timer0 ist mit 8-bit, also 256 Werten aber etwas knapp für deine Anwendung. Daher würde ich eher Timer1 nehmen und ihn mit Prescale = 8 laufen lassen. Dann zählt er alle 1µs um eins hoch. Da er 16-bit hat, läuft er erst nach 65ms über