Also wenn Bascom die LCD-ansteuerung vernünftig gelöst hat sollte das
eigentlich nicht passieren können. Der clr-Befehl des LCD dauert wesentlich
länger als ein Schreibbefehl. Aber ich denke eigentlich schon das CLS diese
Zeit abwartet. Und ein neuer Interupt kann erst ausgelöst werden wenn der alte beendet wurde.

Ich kann mit zwar nicht erklären warum dieser Fehler auftritt, aber ich würde
die isr ohnehin etwas anders aufbauen:

Du deklarierst dir eine globale Variable. Diese muß im gesamten
Programm sichtbar sein. Also auch in der isr.
Im Interupt zählst du nur diese Variable hoch oder runter.
Wenn du den Maximalwert des Zählers auf 100 begrenzen willst mußt du
den aktuellen Wert mit 100 oder 0 vergleichen (je nachdem ob ein Überlauf
oder Unterlauf statfinden kann) und bei Bedarf eingreifen. (Einfacher ist es
auf 255 zu begrenzen. Wird als Variable ein Byte benutzt ist es nach
einem Überlauf automatisch wieder 0.)
Nach der Variablenmanipulation verlässt du den Interupt wieder.

In deinem Hauptprogram brauchst du jetzt eine Schleife die ständig diese
Variable abfragt und den Wert ausgibt.