I'm having the same issue with my Chrysler Pacifica 2005
I've however replaced timing belt, tensioner, pulley, water pump, and both the cam sensor and crank sensor. I still get the P0016 code and the jerking above 3500rpm.
The one thing I do know is that if you have a P0016 code you PCM(computer) is not going to let you engine rpms exceed 3500rpm. This is because this code triggers what is called "limp in" mode. In other words your computer knows something is wrong with the car and wants you to take it very easy on it until you get it repaired and by limiting rpm its trying to keep you from damaging the engine more.
I would disconnect my battery ground first to reset the computer code and see if it goes away. If it reappears quickly it could be bad timing (belt slipped) or the sensors are bad(easy to replace). Since the sensors are easy and cheap ($20 each) do those first. All you need is a 10mm socket, standard screwdriver and a flashlight. IT you still have issue after that I would suspect your timing belt. When was timing belt or water pump changed? If it has been 100K miles or so you should get them done anyway as routine maintenance at the least.
There is only a few more possibilities for me to check to fix my issue.
1) Good oil change and flush AFTER I remove my new sensors and clean out the ports they bolt into- I hear gunk build up can mess with the sensor signal readings.
2) bad wiring to sensor- considering the wires for this are old and basically lay across the top of a hot engine they could be beginning to short.
3) bad flex plate- hoping its not this as it means transmission needs to be pulled to fix