Yo te recomendaría dos cosas.
Las clases que no necesiten atributos, declararas estáticas con métodos estáticos. Así no necesitarás instanciarlas, podrás usar sus métodos directamente con:
Es difícil adivinar qué error está ocurriendo. Prueba una cosa. Comenta las consultas una a una, y ejecuta tu código, para ver cuál es la que está matando la conexión.
por ejemplo, para empezar, comenta toda la validación y desinfección de código. Pon directamente $codigo="ABC012"; Y ejecuta una vez.
Si el resto de validaciones funciona, la culpa la tiene el procedimiento almacenado que ejecuta código.
Si sigue fallando, comenta otro campo más, por ejemplo email, y pon uno a pelo, como con el código.
Hazlo así hasta que compruebes exactamente quién está matando la conexión.