can I do this all inside a atmega328
Not well. You would have to do software PWM.
or equivalent or do I need an external inverter
Or, some ATtiny models have inverted output with "dead-time generator".
Second is how much trouble is it to change the PWM frequencies on the program end of thing and when the chip is on and running.
Depends on the frequency. Changing the "prescalar" is trivial but the frequency changes are rather dramatic. It is possible to fine tune the frequency but there is potentially some lost resolution. In other words, it all depends on the details.