have you checked for codes yet? I see no where that you've done this. It would help you and everyone else to better troubleshoot your problem. Aside from gathering any codes that have been tripped we are all guessing from prior experience, and that could end up being very costly for you. It's called the shotgun theory, if you throw enough parts at it you'll probably end up fixing it sooner or later, and that's what you don't want!!
Please either check for codes yourself of have it done at a shop.