People seem to blame the IAC when a vehicle idles high but its almost never an IAC. The IAC has control over the idle but, many other things will cause a low or high idle, the IAC just tries to hide it. It can be a CTS , TPS, Cam position sensor, etc. Check small rubber elbow between MAP and TB. They crack all the time and will cause vac leak. Most of the time, belly pan gasket leak wont change iddle, it just creates a huge bog due to leaking as air in crankcase is un metered. Get a scanner and look at the live data. Check for fuel cut numbers. If numbers are low then you have an overly rich condition and the IAC is just trying to keep the engine form dieing. If numbers are high, probably a belly pan leak and the computers trying to richen mix to make up for lean condition of un metered air entering system. unless you want to just throw a bunch of parts at it, look at the data, this is the real indicator of whats going on with PCM.