Твоя проблема в области видимости переменной mm.
Ее область видимости текущая исполняющаяся функция т.к. используется ключевое слово var.
Конструкция setInterval(hh ,1000) запустит функцию hh но это уже будет другой вызов этой функции и у него будут совсем другие переменные и параметры.
т.е.
1. при завершении функции значение переменной mm теряется если не выполняется условие.
2. Выполнение условия никак не влияет на уже работающие пять интервалов которые создают новые вызовы setInterval которые так же создают setInterval в общем за 30 сек экспоненциального роста ресурсы системы закончатся.