Silly question, but does she know that what she is saying is classed as 'rude behaviour'?
Why not try this tack:
Adult: Your hair looks lovely. Did Mummy do it up for you?
Child: What's it to do with you? Mind your own business.
Adult: Do you know what - I'm very interested to hear why you've asked me to mind my own business. Tell me what it means, and how exactly to do this.
Child: This, that, this that etc.
Adult: You've asked what's it to do with me. Well, I'll tell you but first, you tell me why you think it's NOT to do with me.
I'm simplyfying it, of course but my point is that the child may not comprehend why it's rude. As an example, why is it rude to put our elbows on the table? "It just is" may satisfy an adult but not a child.
Far better to teach her the correct language to use, so that the next time, her response would be in line with, "I'd rather not say" instead of "Mind your own business".
(I know that she is able to behave better with granddad but perhaps he has taught her the acceptable terminology?)