das wird schon nix werden wegen dem Goto Zurueck da läuft Dir der Stack über weil Du ja per Gosub in die Subroutine springst.
Verbanne Goto aus dem Sprachschatz, das ist wirklich nur in ganz ganz wenigen Ausnahmen sinnig gebrauchbar.

Die DIM's gehören an den Anfang des Programms, das wird vom Compiler nur einmal gemacht, die IF davor wird niemals was ergeben zur Redimmensionierung der Variablen. Das ginge nur, wenn Du direkt auf das S-RAM per adressierung zugreifst.

Den Code berichtigen liefe auf das Schreiben eines neuen Codes hinaus ... mir persönlich zu viel Arbeit.

Mein Tip: geh nochmal ganz zum Anfang, besorge Dir ein gutes Buch über Bascom Programmierung und arbeite Dich dort Schritt für Schritt durch Programmstrukturen und Programmabläufe. Sorry, klingt hart, ist aber herzlich gemeint. Programmieren ist kein Rätselraten, sondern harte Arbeit vor allem am Anfang.