попробую перенести в каталог ip-down.d, но что-то мне подсказывает что результат будет тот же...
Совершенно точно, именно тот результат и будет, но Вам совершенно правильно дали совет использовать /etc/ip-{up,down}.d/, прежде всего для вашего же удобства.
Что касается этой писанины, может быть соль тут.
Смотрите, у Вас есть условие
if [ "$TCP_ports" != "0" ]; then
# skip
fi
Которое грит о том, что если переменная не равна 0 в качестве значения, но не числа, выполняем что-то, но эта же переменная вполне может быть = null, который тоже не равен нулю, если чё.