The other application requires an Arduino to "talk" to a few other devices... so the uC is there to use, however I've read that changing the PWM frequency is more challenging with the Arduino (I need 200Hz... which also seems to be too low to find oscillators on Digikey?).
What on Earth have those things got to do with each other?
If you want to output a 200 Hz PWM from an Arduino running at 16 MHz then you program it (whether using software or hardware) to toggle a digital output pin one way and then back again every 80000 clock cycles.
The standard Arduino library "analogWrite()" function uses a 480 Hz frequency on most pins (960 Hz on a couple of them) on all the most common AVR boards including Uno, Mega, Nano, Mini but it you're programming the registers directly you can set any frequency (total cycles) you want.
You could for example use Timer 2, set the prescale to 1024, set OCR2A to 77, and then set OCR2B to a value between 0 and 77 to set your duty cycle. (You need to use the B output in this case).
This would give a 200.32 Hz signal, which is hopefully close enough. You won't do better with a 555 anyway!
See
https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWMDon't muck with Timer 0 if you want to use millis() or delay() in your code.