So many part throwing suggestions. OP, you should get a realtime data anaylzer so you can read things like fuel trims, spark timing, and throttle position, things like that. If your throttle position sensor is bugging out, it could be causing other issues. But throwing parts is not a good idea. You can get decent data analyzers on Amazon for like $30. They plug into the obd2 port and connect to a laptop. On the laptop, you can read real time performance data. I would recommend that before throwing parts at it.