The stopwatch function in MPLABX gives a value that's way off in reality
I think the Rc oscillator frequency( which is the internal Rc frequency) is what you should use in your calculation and not the instruction frequency. seeing that (4 MHz/250 KHz) == 16, your code lagging by 12 seconds can be attributed to this mismatch.