Hiya, I'm a behaviour therapist and a parent. I have successfully toilet trained/potty learned many kids, including those having setbacks, like your son. Here is my advice:
First: don't panic. Stress will make the situation more difficult for both of you.
Second: have there been any big changes in his life lately? School/home/family/new caregiver/new routine? etc etc. Often this can be the source of the behaviour change, and setback.
Third: Throw away all the charts, contracts, stickers and current rewards systems. They are too sophisticated for him at his age and level. Also, get rid of the pullups (scary I know!).
NOW, follow this procedure, EXACTLY and CONSISTENTLY:
- Get a large jar or a little basket and fill it with his favourite FOOD REWARDS. Keep it near the toiletting area but out of his sight. This would include anything that he considers to be extremely enjoyable- for most kids that means smarties, cheezies, chips, etc, but if your kid loves pickles above all other things, then that is what you should have nearby... There should be a variety in the jar, so that every time you pull something out it's different than the last item you gave him. Keep it a surprise.
- Periodically bring him to the toilet throughout the day, especially around the time he usually goes, if he is fairly regular. If he pees or poos, make a huge deal of it and IMMEDIATELY (within 5 seconds of the pee/poo) give him a food reward. Also give social praise ("so proud of you! Let's call nana and tell her you did it all by yourself!) whatever!
- Never promise a food reward in advance in exchange for a pee or poo, this is bribery and will send your efforts backwards. "Time to poop! No? Well then no chocolate..." is an example of this. "If you poo I'll give you a __" is another. The idea of the food reward is not to use it as a bribe, but to use it as a primary reinforcer to condition a positive association with toileting. As such, he needs to be kept guessing. The reward is a happy surprise each time, and should be varied, and eventually faded out. You will see that he will quickly (eg 2 weeks maybe? Maybe longer or shorter depending on the kid) not need it, and just be proud of himself for succeeding.
- IF HE HAS AN ACCIDENT: say nothing, keep a neutral facial expression and body language (no angry eyebrows or yanking him along harshly) and bring him to the toilet, where you will sit him for 1 minute. If he poos/pees during that minute, reward him as above, but give a little bit less cause it's a little less of a success. If he does not, simply let him go after the minute is up. Do not say "it's okay" or talk about the accident.
- During daily life, do not over focus on talking about the toileting. It sounds like you've gotten pretty stressed about it and it's a big issue, and if he is overthinking it he may be overstressing himself too and making it harder to control himself or plan to get himself to the toilet in time.
- Whenever you DO talk about it, use positive language as opposed to negative language- by which I mean, not just nice words but also using sentences that put the emphasis on what you want to happen, as opposed to what you don't. For example, say "I love that you pood in the potty!!!!" (positive phrasing) as opposed to saying "I love that you didn't have an accident!!!". They are both nice comments, but one makes him visualize pooing in the potty and being a big boy who succeeded, and the other makes him visualize his failures, despite the compliment. If I say "don't think of an orange" you have to first picture an orange in order to mentally cross it out. If I say "think of an apple" you only see an apple in your head, and have no thoughts whatsoever of oranges or aardvarks or bicycles or any other thing other than apples. We want him to only think of apples, and have apples (aka: pooping successes!) at the forefront of his mind.
LAST AND MOST IMPORTANT: BE 100% CONSISTENT!!!!!! do not waffle back and forth, don't do it for one afternoon then give up then go back to it. Commit to trying this approach with 100% consistency for AT LEAST 2 WEEKS and see how things go.
If you have ANY questions, post them here and I will do my best to help you with them!!