I think you need to consider a few things.

- Why would she want to listen to you blaming her for some bad behaviour. It sounds like a totally reasonably response. (Assuming things like yelling back to you isn't something you would actively encourage, and do don't try to do that just to get her to talk). What might work instead of trying to blame her is to talk to the room about some consequences. for example say (in a calm voice but loudly enough for her to hear). "Hey i see someone spilled their drink. I wonder if someone could help me find a towel to clean it up". That way to step away from blaming her and make her part of the solution. The point is not to actually make her do it. The point is to teach her that helping eachother to fix little mistakes is more fun than running away.

- Kids can be very dependent on a single parent at that age. My youngest daughter won't talk to me at times. While my older daughter won't talk to her mom. If she has a phase that she won't talk to her grandmother just let her be. If they want to bond with your daughter let them play a game on the floor and see if your daughter wants to join in. Then while playing see if you can get her to talk.

Finally communication is about opening and closing communication circles. I say "Hey", you respond with "How are you" and then i respond with "Fine". A conversation needs be be interesting for all parties involved for this to happen. Being scolded, talked to, or non interesting questions is not something that encourages communication, especially at that age.