Es decir si suprimes la función lcd_init() ¿ya no se cuelga? ¿sigue haciendo el resto del programa? Es decir, te pregunto si tienes confirmado que efectivamente es esa función y que sin ella el programa sigue corriendo, no sea que el problema sea otro (oscilador mal configurado por ejemplo).
Yo he usado el driver del PICC sin problemas, si quieres te paso un ejemplo que funciona, aunque es para otro PIC pero creo que no te será difícil adaptarlo al tuyo (básicamente reasignar los pines, cambiar el archivo .h del PIC, y poco más).