Чекбокс переключается при на нажатии на сам чекбокс или на его лейбл.
Лейбл и чекбокс связываются через атрибуты for и id.
У вас в коде они не соответствую друг другу.
Записывать количество кликов в переменную и сравнивать что вышло.
Если нужно, чтобы это значение сохранялось при перезагрузке, то использовать LocalStorage
Всегда мучает вопрос: зачем пытаться использовать технологии, которые не подходят или заставляют костылить, при наличии других технологий, чётко и элементарно решающих задачу?
Берете гриды и вперед. Раз нельзя таблицей. Почему, кстати?
На нужной ширине открываете инструменты разработчика, выделяете нужный блок, на вкладке Computed находите свойство display и смотрите кто перебивает ваш none.
Дальше повышаете специфичность до нужной. Или понижаете в другом месте. Этого нам уже не видно.
Альтернатива: даете ссылку на проект или выкладываете проблемный код в песочницу.