Die Grundstruktur müsste so an sich korrekt sein.
Grundidee beim Debuggen: vereinfache alles.
Schau mal, woran es liegt, lass dir durch Show Message \V[nummer der vari] den aktuellen Inhalt der Variablen an zahlreichen Stellen ausgeben und kopier mal den Codeabschnitt mit den ganzen Move Picture in einzelne Events sodass du testen kannst, ob der astrein ist


Wozu sind eigentlich die Forks ganz unten gut?
Die sind verschachtelt und fragen Bedingungen ab, die nicht gleichzeitig erfüllt sein können (Variable [1] == 1 then ... Variable [1] == 2 then ...), sprich über die erste Ebene der Verschachtelung wirds nicht kommen, wolltest du die nicht hintereinander statt ineinander schalten?

Und nochmal: Lagere aus! Die ganzen Move Pictures haben in dem Event nix verloren, sie machen es nur unübersichtlich, pack sie in ein anderes Event das du an der Stelle mit Call Event aufrufst, dann geht der Debug auch leichter