I agree with the majority.
So sorry this is happening. I'm glad you realise she's started on your DD - probably because she knows it no longer hurts you in the way it used to, she needs a new victim.
What a bitch.
You're right, she will never change.
I suspect your son is coping in a way he knows won't upset anyone, but probably feels it deeply as well. He just doesn't want to show it.
I would in your children's position far rather not see granny than have that kind of underhand dig coming at me. It's mean and awful. Your poor dd.
What you need to do, as everyone has said, is call her EVERY time - you speak to her quietly in private and it won't count, she'll ignore you. You tell dd quietly in private that granny is wrong and to ignore it. That's not standing up to granny.
Say it happened again - you're not in the room, gran comes out with a nasty remark, dd runs to you crying.
You say 'what??' and take dd's hand, go downstairs together, and say to granny 'I hear you have just said so and so to dd. Why did you say that? You have really upset her and I won't allow it', or similar. You stand up to her in front of dd, so dd knows how to assert boundaries when she grows up herself.
This is the right way to handle an aggressor, imo. Direct and straightforwrd and no whispering or tiptoeing around.
Let her know she can't bulldoze you or dd this time. She's a bully and she only did it when you weren't in the room because she knew you would be angry. Picking on a child - ffs.
bullies need standing up to. She will do it again unless you really harden up, sorry - it must be difficult, but you can do it. Gte angry, get tough. Call her on it every time, in front of everyone - it's the only way.