Если один файл, то это не верно, структура файла должна быть такой:
1) старт/продолжение сессии
2) проверка наличия запроса клиента и если он произошел, то проверяем условия каптчи и другие поля, результат проверки отдаем клиенту, после чего обязательное прекращение работы скрипта
3) подготовка параметров каптчи
4) вывод html страницы клиенту
$_SESSION['msg'] = " Верно<br />"; - это, как и <span>
<?=$_SESSION['msg']?></span>
<?php unset ($_SESSION['msg']);?> лишнее. Данный элемент должен выводить текст по умолчанию, а ответы на проверку совсем не нужно хранить в сессии, у вас асинхронный запрос. Поэтому проверили запрос, выдали перечень всех ошибок клиенту, если они есть, или дальнейшее действие, если все Ок.
"убираем, на всяки случай, теги и пробелы с обоих сторон и сравниваем результаты" - это бесполезность, нужно так -
https://www.php.net/manual/ru/book.filter.php.
$("#commt").submit(function(){return false;}); - не так, а так:
$("#commt").submit(function(e){
e.prevetDefault();
//какие-то действия
//ajax запрос и обработка ответа сервера
});
А этот обработчик $("#send_comments").on("click",function() ... удалить.