para configurar los timer de los modulos CCP debes configurar el timer0 el timer 0 dicta a los modulos la frecuencia con la que hara el PWM y la resulucion del PWM lo marcas en el modulo CCP
pera mover el USB del Pic C nunca lo he movido solo en C18
pero por lo que veo siempre tienen conexion por CDC o sea un puerto serie emulado
para hacerlo en modo HID hay que moverle al USB descriptor para que sea reconocido como un dispositivo HID pero hacer la interfaz desde la PC va ser otro show
te dejo un ejemplo del PWM con Pic C
este PWM el ciclo util lo modificas con el ADC no me acuerdo como va solo lo copie de mis viejos proyectos
void main()
{
unsigned int16 duty_cicle;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_ccp1(CCP_PWM);
set_adc_channel(1); //uso el puerto en A0
// The cycle time will be (1/clock)*4*t2div*(period+1)
// In this program clock=10000000 and period=127 (below)
// For the three possible selections the cycle time is:
// (1/10000000)*4*1*128 = 51.2 us or 19.5 khz
// (1/10000000)*4*4*128 = 204.8 us or 4.9 khz
// (1/10000000)*4*16*128= 819.2 us or 1.2 khz
setup_timer_2(T2_DIV_BY_16, 75, 1);
for(;

{
delay_us(2); //retardo de 5 us
duty_cicle=read_adc(); //el ADC se guarda en leido
//duty_cicle = 258; // [408/(4*(128+1))]=0.5=50%
set_pwm1_duty(duty_cicle);
}
}