For GOTOs and CALLs, the instructions contain 11 bits of the address of where the GOTO or CALL is going to.
11 bits accesses 2048 lines of code.
The PIC16F88 has 4096 lines of code, which can be seen as consisting of two halves, one with the MSB of 0 and the other with an MSB of 1. These halves are called pages. There isn't room in the instruction for the MSB, only for the other 11, so at each GOTO or CALL, the MSB comes from bit 3 of PCLATH.
Any CALL or GOTO that is in one half, that send the program counter to the other half, needs to set or clear Pclath, 3.
If you use MPLAB, you can look at the program memory to see where instuctions are. If the address is 0x000 to 0x7FF, then Pclath, 3 should be clear when GOTO or CALL sends the program counter to that address.
For instance, if there is a line at 0x600, that needs to call a routine at 0x800, the code would be:-
org 0x600
bsf pclath, 3
call 0x800
bcf pclath, 3 ;This is useful if there are any other calls later
org 0x800
;here is the subroutine
return