Hi, Russ

One thing hurts me in your program ...

you write :
produces pulses of varying width
in fact the PWM command produces pulses BURSTS whose total duration match the requested "duty" ratio ...

understand signal is not a nice pulse with one High level and one low level, but some kind of garbage.

No problem, if you drive a lamp or generate a voltage through a Low Pass filter ...
but not so good if driving some kind of inductive load ( motor i.e. )

in this last case ... you should create some Software PWM by regularly toggling a pin ... or use a 12F683 that has a HPWM module.

Alain