Hola sokoloko, observando tu programa le veo varios errores de entrada. Primero no has seteado el oscilador interno, que sería algo asi como: setup_oscillator(OSC_8MHZ); Luego veo que estás usando la interrupción #INT_EXT para ver cambios en RB0 y según tu código deberías estar usando #INT_RB. Para el uso de esta última te recomiendo estudiar muy bien el ejemplo que trae el CCS: EX_PBUTT.C.
No es para nada recomendable poner delays dentro de una interrupción, sino mejor seteas la bandera que tienes allí y dentro del programa haces lo que corresponda al valor de la bandera.
También tienes una función atendiendo al valor de los pulsadores del puerto B. Esto lo debe atender la rutina de interrupción (o por medio del valor de la bandera en la int).
Si veo algo más te cuento,
Saludos!