Por eso te digo, MPLAB ya es obsoleto, Microchip ya no da soporte desde hace algunos años, la última versión fue la 8.92.Con respecto al compilador XC8 (Uso MPLAB como entorno de desarrollo)es una versión actual ya que lo volví a descargar desde la página de Microchip hace 1 mes , es la versión actualizada que está en su página oficial
Ahora el entorno usado (IDE) es MPLABX, pero eso no es lo importante, sino la versión de ToolSuite, que para esta fecha es XC8 v2.10
No me refiero a eso, sino a la sintaxis actual.Para el uso de interrupciones puedo escribirlo por ejemplo como INTCONbits.GIE=1 asi como GIE=1 igual me lo permite así como colocar dentro del __delay_ms () una variable.
En XC8 v2.10 el servicio de interrupciones ya no es soportado como se hacía antes: "void interrupt nombre_x (void)"
Ahora debe ser algo así: "void __interrupt () nombre_x (void)"
Si compilo tu programa con la versión actual esto es lo que sucederá:

Entonces tendría que solucionarlo cambiando la sintaxis por la actual.
Y lo mismo pasaría con __delay_ms() como lo mencioné...

Esto lo resolvería creando una función similar pero que sí me acepte variables como parámetro.
MPLABX v5.30 con XC8 v 2.10¿Qué versión de compilador usas?
No, el MPLAB solo lo uso para programar en ensamblador.¿Usas MPLAB para programar en C?
Y aunque MPLAB y MLABX soporten plugins para trabajar con otros compiladores, prefiero usar el IDE del creador.
No me gustan las cosas complicadas para llegar a un mismo fin, por eso mi compilador favorito es PIC C Compiler de CCS