Dein Problem ist, dass du den Timer durchlaufen lässt, dich aber nicht um das Overflow-Flag kümmerst. Deshalb geht das Ganze in die Hose, sobald der Abstand zwischen zwei Flanken größer wird wie 2 Timer-Zyklen. Dann nämlich ist zum Zeitpunkt des Overflow-Interrupt-Einschaltens das entsprechende Flag bereits gesetzt, so dass der Interrupt sofort auslöst (daher der nur sehr kurze Puls).

Ließ dir mal diesen Thread durch:
http://www.mikrocontroller.net/topic/255562#new
Was ich dort zum TXC-Flag geschrieben habe, gilt auch genau so für das Overflow-Flag.