For sample rate, you have pretty much already got to the ceiling of FM quality.
If you could be bothered to make an FIR low pass filter to avoid putting all the power into the highest frequencies, you could increase the sample rate by ~30%. I basically chose the highest standard sample rate such that I didn't need to make such a filter.
Currently the audio is "played" by outputting square pulses for each sample. Sync interpolation would be better, but probably not much better. (you would get slightly more energy into the audible band, and more importantly you wouldn't be putting power into the stereo band adding noise to your signal.)
For bit depth, you currently have ~12 bit audio, which could be increased by changing some clock frequencies. With the current implementation, bit depth is reduced slightly as sample rate is increased. You would however be running the PWM module and clock modules even further out of their design specification, which might cause them to overheat or otherwise malfunction. Do some calculations, but I suspect the quantization noise on 12 bit audio is probably fairly small in comparison by real atmospheric noise on the signal with raspberry pi transmission levels....