I feel for you but I have a solution....or at least it worked beautifully for us!! I have posted recently about Buddy barking, chatting, growling, jabbering, etc....he was driving us crazy. Someone posted to put coins in a coke can (cover the top with duct tape) ....every time Buddy started in on one of his "chatty cathy" stages we would shake the can and say, NO BARK!! It worked the first time we did it!!!!

My DH keeps a can beside his chair and I have one beside my chair....if Buddy starts barking & jabbering we shake the can and he immediately STOPS!!!! We were amazed!!! Also works with the door bell....when the door bell rings we shake the can and say, "no bark"!!! He has now stopped barking at the door bell!!!!
I only used the cans for about 2 or 3 days and the jabbering/barking stopped!!! Now I just have to say, "no bark"!!! It was a miracle solution for us!!!
(I need to thank Ms. Carol (her Yorkie is also named Buddy) for this suggestion)!!!
BUT.....I do think you need to address the issue with your son too....he has to do his part too. He cannot continue to upset your furbaby!!! Good Luck!!!!