No uso CCS pero sí mucho los PIC18, he aquí un par de sugerencias.
1) Fíjate si el bit IPR1.RCIP está a 1. Este habilita al PIC para usar niveles de interrupción.
2) Las interrupciones de mayor prioridad irán al vector 0x0008 , las de baja prioridad al vector 0x0018.
3) No sé que haces en la rutina de interrupción pero desde ya te comento que no es buena costumbre 'hacer muchas' cosas en ella. Tu problema, si es usar la usart y el A/D se podría resolver tranquilamente con 1 solo nivel de prioridad. En cuanto a no hacer muchas cosas, pues bien, al ingresar en la interrupción, si tienes que leer el valor de A/D leído y luego hacer muchos cálculos o ejecutar una rutina de una longitud respetable, te sugiero que al convertir el dato con el conversor, enciendas un flag que leas en el bucle principal de tu programa y ahí recién hagas ese cálculo o algoritmo longevo. Mientras, el GIEH y GIEL estarán de nuevo habilitado y podrás seguir atendiendo otras interrupciones.
Saludos