Как вариант при клике на гамбургер добавлять тегу body или html класс menu-opened и в css прописать стиль для этого класса overflow: hidden, а при закрытии меню и при кликах по ссылкам меню удалять класс menu-opened.
По второму вопросу проверять есть ли у родительского элемента потомки, если есть добавлять класс sub-menu-opened и т.д.