Estás haciendo esto de manera incorrecta. A diferencia de la programación de máquinas grandes con sistema operativo, en los microcontroladores debe saber cómo funcionan las cosas en el hardware. Eso significa que ahora un compilador se interpone ocultando las cosas, como si estuviese dispuesto a lidiar con todas esas cosas de la máquina de las que no tiene que preocuparse en un sistema grande. Escribir en un HLL en un microcontrolador puede ser útil, pero solo si entiende el hardware subyacente .
El uso ciego de un compilador y las rutinas de la biblioteca de llamadas para administrar el hardware puede sonar como el camino más fácil, pero no es bueno para aprender, y ya que realmente no estás aprendiendo lo que está pasando en los niveles bajos, todo estará sucede y no entenderás lo que está pasando.
Entonces, para responder realmente a tu pregunta, el mejor libro para aprender un PIC 18 es la hoja de datos para ese PIC 18. Si estás buscando algo genérico para comenzar, prueba el 18F2520. Es una parte fácil de manejar de 28 clavijas y viene con una buena combinación de periféricos generales. También tiene un montón de RAM y memoria de programa para hacer muchos proyectos útiles.
Cuando lea la hoja de datos por primera vez, debe observar detenidamente las partes que hablan de la arquitectura general, como el modelo de memoria, el conjunto de instrucciones, la pila, los registros de punteros, etc. Eso será el mismo para todos los PIC 18. Los diferentes modelos PIC 18 varían en la cantidad de memoria y mezcla de periféricos. Una vez que puede escribir código básico utilizando el núcleo, puede probar los periféricos uno a la vez y aprenderlos individualmente.
En cuanto a MPLAB, ese es un documento separado. En realidad MPLAB no es un gran problema para aprender. Lo que requiere más es el ensamblador, el enlazador, posiblemente el bibliotecario, y cómo interactúan y cómo usarlos. Una vez que obtenga todo eso, puede lanzar un compilador, pero ahora entenderá lo que realmente está haciendo y, por lo tanto, cuáles son los diversos problemas y restricciones que simplemente no ve en los grandes sistemas.