No es el captcha, sino que tienes un conflicto de Javascripts, por un lado la función limpiar() que busca un formulario inexistente y, por otro lado, que usas jQuery para enviar los datos serializados (?).
Lo primero que deberías hacer es verificar qué estás recibiendo en $_POST, lo que tienes en $_SESSION y analizar el siguiente paso en base a eso.
PHP para procesar el formulario:
Los campos vienen como los esperas?, todos o falta alguno?