In my experience, overheating at idle and in-town, but ok on the highway, is low coolant flow at low RPM. Sounds to me like you've addressed the obvious with the flex-fan and shroud. I tried that and they didn't help either. Your underdrive pulley could be the culprit in your case.
Some...