Hallo liggi,
auch dir erst mal ein willkommen im Forum.

Folgendes hilft zwar nicht für dein Problem, aber du solltes Bedenken:
Wenn du in der main()-Schleife die PrintInt()-Funktion benutzt, verlierst du auf alle Fälle einige Wechsel an der Odometrie.
Zum übertragen eines einzelnen Zeichens benötigst du ca. 5ms. Um den INT-Wert zu senden scheinst du 3 Zeichen zu benötigen. Das sind dann 15ms.
Wenn du an der Odometrie die Scheiben mit den den 8 Farbwechseln hast (harry3 spricht dann sinnvollerweise von den 8er-Scheiben), hast du bei ca. 50cm/Sekunde (Volldampf mit 255) nur ca. 6ms Zeit zwischen den einzelnen Farbwechseln.
Gerechnet: 1 / (50cm/Sekunde / 12cm/Radumdrehung * 5(Getriebestufe1) * 8(Farbwechsel))
Bei den 16-er-Scheiben sieht es dann natürlich noch schlechter aus, da hier die Zeit auf ca. 3ms zwischen den Farbwechseln schumpft.

Du bekommst hier also nur ungefähr jeden 3(6)-ten Farbwechsel mit. Wenn nun das senden und die Geschwindigkeit eventuell 'synchron' laufen, dann wird du sogar gar keine Wechsel 'sehen'. (Das ist aber sehr unwahrscheinlich).