I'm working with the 18F2431...

Forget the PICBASIC PWM-Modules, this device has to be coded "by hand" !
I'm powering a brushless DC-Motor and I can't see your problem "around 0". Before programming new values to PDC* you have to set a bit and clear it afterwards in order to realy update the timings.

Yes, there are 3 (or 4) independent PWM-Modules inside !