Resuelto... efectivamente el problema es en la ñ, PHP tiene un bug con el SETLOCALE, aparentemente interfiere con caracteres especiales en los nombres de clases... si nos va bien lo reparan en la version 6...
https://bugs.php.net/bug.php?id=18556 https://bugs.php.net/bug.php?id=35050
Lo que hice para corregirlo (lo dejo por si a alguien le sirve) es quitar la ñ de todas las clases y dejar el setlocale de la siguiente manera:
Código PHP:
setlocale(LC_ALL,'es_MX','');
date_default_timezone_set("America/Mexico_City");