Estimado atani123:
Voy a dar unos palos de ciego.
Yo no he usado nunca el 16f84a, pero sí he usado el 18f250 con mplab-c18 y tuve problemas parecidos. Cuando miraba el fichero de mapeado (*.map) que devuelve el compilador, me fijé que escribía en posiciones de memoria que no correspondían con las que se señalaban para mi micro en la información de proteus y daba errores al simular.
Yendo a las opciones de construcción del proyecto (build options) y modificando los parámetros referentes a modelo de memoria, modelo de datos y modelo de pila al final conseguí que funcionara. Pero estos datos se refieren al mplab-c18 y no sé si tu estás usando c o programas en ensamblador.
En Proteus, si pinchas con el ratón en el micro y abres la ventana de edición del componente, verás que existe una propiedad avanzada que se llama 'dump model configuration'. Márcala con un yes. Con ello al comenzar la simulación en la ventana 'simulation log' te escribirá un resumen de los valores que utiliza para simular el micro. Ahí podrás ver el tamaño de memoria de código y de datos y comprobar si la dirección que te dá error entra dentro de ese márgen o está fuera de él.
En fin, que entre el mapeado y el volcado de modelo de configuración, tendrás que encontrar el problema.
De todas formas si enlazas el proyecto de pic y el diseño de proteus, podríamos intentar echarle un vistazo.
No sé si te aclaro algo o te lío más.

En fin, recibe un saludo.