Hola Helena y Lord:
No he leído el código que has hecho, pero otra cosa que podrías probar, es con un par de latchs, que por cierto son lo suficientemente económicos como para al menos aprender a usarlos y experimentar un poco con ellos.
Yo uso los CD4511 que son decodificadores para display de siete segmentos y son muy fáciles de usar.
En cualquier lugar del programa que creas conveniente, le envías al puerto los datos, grabas en el 4511 con el latch y luegos sigues con otros procesos ..... (sensores, relés, leds, lo que quieras hacer con el pic), luego cada vez que quieras actualizar los displays, llamas a la subrutina que los maneja y pones y grabas la nueva información.
De esta forma no vas a tener más problemas con el multiplexado.
Es mi primera incursión en el foro, aprovecho a saludar a la gente del mismo , espero no haberme equivocado y que sea de ayuda.
Saludos a todos.
Marioguillote = Mario