Sounds like it started out as a starter solenoid contacts or low power, poor battery connection problem. That still may may be the case but, now you very well may have a PCM problem on top of it.
I would start with the basics. Clean the battery cable connections and check the cables for any signs of internal corrosion. This will also reset your codes. See which codes return. Consider having the battery load tested. Free just about anywhere.
As far as the codes you have now; transmission, O2 sensor heat, EVAP leaks, I don't see any effecting starting and running. Multiple, unrelated codes are common when you have starting, rough running problems. A weak battery doesn't help either.
Last edited by Cougar41; 02-01-2012 at 02:14 PM.