Wo liegt denn nun der Hase im Pfeffer?
Meistens bei der Tatsache, dass Controller IMMER das machen was man ihnen sagt, aber nicht immer das was sie sollen

Folgendes fällt auf den ersten Blick auf:

Der Timer läuft bei einem Wert von 65535 über. Wenn Du ihn in der ISR auf 65500 vorlädst, gibt es alle 35 Taktzyklen einen Timer1-Interrupt. Bei 1MHz wäre das alle 35µS, also knapp 30.000 Interrupts pro Sekunde. Ist das so gewollt? Wenn nicht, müsstest Du den Timer mit einem geeigneten Prescaler versehen (siehe Bascom-Hilfe...), und/oder den Preload-Wert verkleinern.

Die Geschichte mit "If Zaehler = 25 then..." geschieht natürlich auch nur ein einziges mal, denn in der nächsten ISR wird Zaehler um 1 erhöht, ist also nicht mehr 25. Je nachdem was Du damit erreichen möchtest (das erschließt sich mir im Moment leider nicht ganz), müsstest Du entweder Zaehler auf 0 setzen, wenn er den Wert von 25 erreicht hat (d.h. in der IF...EndIf-Schleife), oder aber mit > 25 abfragen.