Y repito la pregunta... ¿En qué momento llamas al método setVerificarDatos()?
Lo que yo veo ahí es que al hacer:
$obj->nombre = 'perro';
Se llamará automáticamente a la función __set() con los parámetros:
__set('nombre', 'perro')
Y dentro de esta función se hará la verificación
if (method_exists($this, 'setnombre'))
Como la línea anterior te dará false, pues no existe ningún método llamado setnombre(), entonces pasará directamente a la línea:
return $this->_usuario[$CaracteristicasUsuario] = $value;
Entonces jamás se llamó al método setVerificarDatos();
Saludos