I am puzzled over what your problem you seem to perceive that you have.
I regularly use PWM at much higher frequencies without having to change the processor clock. All you have to do is to change the prescaler register driving the PWM.
void setPWMtimer(){
// Set timer1 for 8-bit fast PWM output to use as our analogue output
TCCR1B = _BV(CS10); // Set prescaler to full 16MHz
TCCR1A |= _BV(COM1A1); // Pin low when TCNT1=OCR1A
TCCR1A |= _BV(WGM10); // Use 8-bit fast PWM mode
TCCR1B |= _BV(WGM12);
OCR1AL = 0x80; // start PWM going at half maximum
}