Hallo Tryan,
wenn ich das richtig sehe, hast du alle Verwendungen vom PortC auskommentiert und nur noch für das Display verwendet. Checke das sicherheitshalber noch einmal.
Wo ich jetzt gerade dran denke ist, ob durch die Ausführungszeit der LCD Ausgabe nicht evtl. das Timing gestört wird. Du hast die Überlaufzeit des Timers ja auf 1ms runtergesetzt. In der Zeit schafft das Display definitiv nicht seine Ausgabe.
Zum testen könntest du mal zwei Sachen machen:
1. Setze den Prescaler hoch auf möglichst großen Wert, also 1024. Dadurch flackert deine Anzeige zwar, aber du kannst sehen, ob die 0 dann richtig kommt.
2. Kommentier nur mal den LCD-Befehl bei der 0-Taste aus. Mal sehen ob es da dann wieder geht.

Gruß

Rolf