I did answer on another thread but here goes again...
I don't subscribe to the idea that you should stand back and let them work it out themselves. Would you stand back if this woman was physically beating your grand-daughter? No, of course not. Constant verbal picking is just as damaging, as you know to your cost.
She is not this wee girl's mother, so your son should stop this constant criticism and not make specious excuses such as 'she's got a good heart'.
No, she hasn't, she would not be constantly carping at a little child if she had.
She's going to damage this wee girl just as someone damaged you.
This woman may do good things occasionally but so what? If she believes she is never wrong, then she needs to be told in no uncertain terms that she is constantly wrong when she is hurting a 5 year old with her tongue.
If you have to scare your son into action by telling him exactly what was done and said to you, and its consequences, do it.
You may be the only chance your grand-daughter has.