Слишком большой скрипт, реж на условно самостоятельные части и сохраняй по разным файлам. Подключай последовательно и тестируй.
Если у тебя всего 1 поток. Его можно не объявлять.
SUB(вход в город) // подпрограмма
Попробуй заменить русские названия на английские, а пробелы на _.
То что интерпретатор Кликермана не ругается, не значит, что он их правильно распознает.
Если где либо в строковых переменных присутствует символ с кодом 39, то сравнение строк приводит к ошибке.