1999 GT 3800 V6, 100k miles. Three days ago it throws a P0300 and idles rough, and makes a hellacious rattle at rear bank. It sounded like I threw a pushrod or something! Replaced 1-4 coil pack. Attempt to start, no dice. Found no spark at same coil pack I just replaced(?). Had coil pack and ICM tested, found ICM bad. Replaced the ICM, and rattle at rear bank went away, idles normally and code gone. Took it for a test drive (all of a mile) and it chugged viciously, then the tach quit momentarily. The TRAC light and Change Oil Soon light also came on momentarily. As suddenly as it happened, all resumed normal operation. The car never stalled. Then the dreaded SES came on again, this time throwing a P0336. Replaced the CPS, and now at high rmps at idle, it sputters and the same P0336 CPS signal code is thrown. I am stumped. Is it the PCM? I have already spent $250 on this issue and don't want to guess anymore. Any helpful advise is greatly appreciated!