Here's a (somewhat complicated) way to make a synthetic flat:
http://trappedphotons.com/blog/?p=756 There might be some useful ideas in there.
I have managed to repair a variety of image issues by messing around with RangeSelection, PixelMath, Convolution, CloneStamp and the wonderful SubstituteWithPreview script. It's always possible but usually requires some experimentation.
Cheers,
Rick.