3. I did try and test your suggestions for the 16F628 which worked except for the symetrical issue.
what did you try , post your code

Currently, I have configured the internal OSC for 16MHz.
all those calc's are for a 20MHz clock if you use a different OSC then they must be recalculated

the internal OSC is not brilliantly accurate and could need trimming to approximate a symmetrical output


on paper these settings are incorrect for 16 or 20 MHz
' OLD SETTINGS FROM 16F628




'PR2 = %00001001 ' dec 9 47.5%
'T2CON = %00000101 ' dec 5
'CCPR1L = %00000100 ' dec 4
'CCP1CON = %00111100 ' dec 60