Here are a couple things (differences with my code) to try :
Try declaring Old_Port_B like this:
Code:
unsigned char Port_B;
unsigned char Port_B_Delta;
static unsigned Old_Port_B = 0xFF;
Try spliting your handler into separate rise and fall handlers like so:
Code:
if (Port_B & 0x10) Int_3Rise_Handler();
else Int_3Fall_Handler();
Double check that you set INTCONbits.RBIE in initialization
Those are the only differences between my handler (2 encoders & 3 GTS) and your handler. We changed it last year and I don't remember exactly what fixed what.