La unica que se me ocurre es que estes superando el limite de ciclos que puede manejar la funcion.
Tengo entendido que __delay_ms(x) funciona a traves de delay(x) o como se llame, este ultimo cuenta los ciclos de reloj en ves de tiempo, al llamar al de ms este calcula la cantidad de ciclos y usa la funcion delay(). Donde el maximo es de 197120 ciclos
Para tu caso serian 1 millon de ciclos. Podrias probar poner 10 delays de 100ms y ver si te envia el mismo error.
Y no entiendo por que el uso de Hi-tech c, mas cuando estas empezando te deberias ir directamente por XC8 (y aprender este y no volverte a aprender todo de nuevo) que vendria a ser la mejora de este, o lo que le da soporte microchip ahora. En XC8 el programa es igual, nomas que el inclide es xc.h