Everything you're describing sounds to me like you have a vacuum leak somewhere, which can explain everything you describe from the original fluctuating idle (even before the IAC was replaced) as well as the EGR flow codes.
FWIW, if the shop you visited has not yet suggested that there might be a vacuum leak and instead are suggesting the ECM is throwing codes for parts that don't seem bad, I question their understanding of anything other than reading diagnostic codes. Diagnostic codes are not intended to state which parts are bad, but rather which systems need further diagnosis.
-Rod