So wie ich das seh, wird in IRQ0 der Zähler erhöht. Wenn der Zähler 50 überschreitet... was passiert dann? Das Programm wird nur beendet, aber PWM-technisch verändert sich da nichts. Ein END ist im Prinzip eine leere Do-Loop-Schleife.
Da müsste also zwischen Loop und End noch irgendwas rein, um den Motor abzuschalten (z.B. PWM1B = 0 oder 255, je nach Auslegung)

Warum aber IRQ0 nicht zählt, seh ich gerade auch nicht. Evtl kommen keine richtigen Pulse an. Versuch mal, die Interrupts/INT0 erst nach dem On Int zu enablen.