Sorry, I should have explained that a bit more thoroughly. There is only one standard 10bit PWM module used.This is quite interesting. Basically, you're using the law of averages to effectively generate 12 bits by superimposing four PWM module outputs?
...
Then every PWM cycle (in the interrupt) the PIC cycles in a new value, in sequence, from the 4 values. So the PWM goes; 602, 601, 601, 601, 602, 601, 601, 601 etc repeating.
As you are controlling something real slow (like a heated block) you can simply use enough low-pass filtering so the alternating PWM values average out at exactly 601.25.
This gives you 12bit PWM from a standard 10bit PWM module.
I'll disagree with others that you don't need high PWM resolution for PID controlling a heater block, it will make it a lot easier for the PID if you have very fine output resolution. Personally I would use a simple delta-sigma modulator with a 32bit register in the PIC, to give "PWM" resolution of about 1 million. That will make it easier for the Integrator to trim to the 0.001'C you require.
Good luck too on getting 0.001'C regulation, I have done a xtal oven with 0.01'C regulation and there were quite a few issues... You are aiming for 10 times that precision and with a larger system with more wires and more interconnected modules etc. It's not going to be easy.