Supongo que tienes razón y no es problema de bancos, pero si que he visto en el datasheet que a partir de una posición de memoria de programa si intentas leer te devuelve un caracter null. He intentado poner el array en una posición no problematica añadiendo un @ 300 pero tampoco funciona.
En cuanto a lo debuggerar tendré que hacer otro programa solo para hacer el debugger, el programa que tengo ahora es muy largo y puede ser un lio (tampoco soy un experto debuggeando), eso si, lo raro es que con el Proteus va bien por lo que entiendo que el programa esta bien, se compila bien y el problema tiene que estar en el PIC o la memoria del PIC que no se pueda leer o algo así.
Me lo mirare detalladamente, pero me suena que hay unos fuses de protección de código... ¿esos fuses de protección de codigo afectan solo a intentar leer con el programador o tambien afectarian a leer con el propio PIC?