На первый взгляд кажется, что переполнение стека напрямую связано с обработчиком событий для checkBox1_CheckedChanged .
Похоже, что обработчик вызывает hideCheckbox () , что, в свою очередь, изменяет CheckState вашего флажка на Unchecked . Это, в свою очередь, отключит ваш обработчик событий и, следовательно, создаст бесконечное число l oop.
Странно, что вы утверждаете, что все работает для других флажков. Я предполагаю, что эти флажки не подключены к соответствующим им обработчикам событий, поскольку они также должны вызывать переполнение стека.
Не могли бы вы попробовать полностью удалить обработчик событий, если он не нужен? В противном случае закомментируйте вызов hideCheckbox ()