Don't put him back in diapers. It won't "shame" him into staying dry, he obviously doesn't care to stay dry at home. If he is dry at school, then you know he's capable and this is a power struggle or him just ignoring the signs.
Don't "remind" him to go. Set a timer and TAKE him to the potty every 30 minutes. If he protests or says he doesn't have to go, take him anyway. Tell him he can be trusted to go on his own after he's been dry for X number of days, but until then he will go potty every time the timer rings. No matter what.
If he has an accident, don't shame him or yell, but make it uncomfortable. He is old enough to take off his own clothes, put the wet things in the laundry tub or where ever, get new undies and pants and put them on and wipe up the floor! If he wants/needs your help, do so but make him wait a bit... don't come running. Say "okay, honey, I'm just finishing these dishes and then I'll help you in a little while" and give him 5 minutes to sit around being wet and uncomfortable.
Use the upcoming holidays as possible bribes... something he really wants? - he'll need to show what a big boy he is and that when he's ready to be very responsible and be a big boy, then it'll be time to get that special thing because you'll know he can be careful and responsible.
Unless there's a medical problem or he's special needs, he is capable of this. You must EXPECT it of him until he expects it of himself. :)