Un consejo, nunca pongas delays dentro de rutinas de interrupcion.
Por el otro lado te faltaron configurar registros.
El PIC16F886 permite seleccionar que pin es el activado por una interrupcion al cambio.
Eso se hace con el registro:
IOCB: INTERRUPT-ON-CHANGE PORTB REGISTER
Otro cosa mas que el Pull-UP es tambien individual y se hace con el registro:
WPUB: WEAK PULL-UP PORTB REGISTER
Una cosa a recordar cuando usas la interrupcion por cambio del portB, es que antes de limpiar el flag de interrupcion debes leer el puertoB asi te permite limpiar el flag, sino queda en 1 y aparecen los problemas de que queda encerrado en la interrupcion.
Para saber todos los registros que te afectan al puerto, te vas al datasheet buscas I/O Ports -> PORT B, ahi explica todo e incluso uno por uno los registros, pero si queres ver cuales son todos, te vas al final de la seccion del PORTB y aparecen todos los registros y bits.