fijate cuando haces
$errores es un array.
Fijate este link
http://www.php.net/manual/es/function.count.php
para mi deberías de hacer lo siguiente:
Con eso te fijas que no tenga nada un array.
Para mi puede pasar por eso el problema, por que como dijiste que si borras todas las validaciones y te funciona, eso significa que estas borrando también la declaración del array entonces toma a $errores como una variable(declarandola en ese mismo punto) vacía y pasa por el true de la condición ya que estaría vacía siempre.
Espero que sea eso.
Mucha Suerte y Saludos.