Reading a 16-bit timer on an 8-bit MCU
Check your datasheet!  It will talk about this, in gory detail, for your particular chip.

I'm not certain that this is true for all 16-bit counter/timer registers on all PICs (maybe someone else can answer that!) but at least for the PIC 18F that I use, the datasheet specifically talks about how this is handled.  

When you read the low byte, it buffers the high byte into a temporary register for the high byte, so that when you read the high byte next, it gives you a full instantaneous snapshot of the timer value.

The same basic process is used on AVR (and Arduino of course), and for most other cases where you need to read or write two-byte registers at once on 8-bit MCUs.