Hi Cinderella - I think you should take strength from the fact that your SIL from hell actually needs you more than you need her.
The only need you have of her, as far as I can see, is to keep the peace with your in-laws and not be seen as the one who rocks the boat.
She needs you because she has been so utterly spoilt by her parents who clearly think the sun shines out of her, that she has no friends and only an ancient husband.
I know she has been patronising, rude and bossy towards you but I do feel a little bit sorry for her.
Here's a suggestion. Arrange to see her on her own, preferably on neutral territory. Tell her that you were not happy about her behaviour towards your son. Give her exact situations, not "you always ....." Tell her that you are offended by her interfering with your parenting, which is your responsibility and not hers. Tell her that this is making you think twice about coming to see her (ie implying, but not saying, that you might not come any more if this behaviour continues). Tell her that you do not want to be rude to her in public, in front of relatives and spoil the occasion for them.
See what she says. If she shows any remorse whatsoever and gives you any indication that she will try to improve her manners, you may wish to stay in touch. But I would still cut down the frequency of your visits, and not expect her to become the SIL from heaven overnight.
If when you say all this, she insults you yet further, and this is a possibility, you have the option of turning your back on her and leaving. Say "I don't have to put up with this, and in future I won't."
You need to show her with words followed up by actions that she cannot treat you as she has and still get to enjoy your company. If you do have to leave to make your point, at least you haven't had to do it in front of other family members.
At some stage, you might consider assertiveness classes to help you deal with difficult people.