I think you can't make people feel the way you want them too, you can only control your reaction to thier behaviour.
I think you MIL is playing favourites - that makes her a not very nice person. BUt the impoprtant things are that your DD knows you think she's wonderful and is adored by the people who actually matter (which she clearly is - she sounds like a lovely little person). She will know that, and she will also probably at some point realise she is not being treated equally by MIL. You can only reassure her that MIL is unreasonably and it is her loss (if you can do this without using the phrase 'Granny is bonkers, screw her' well done!!
)
Try not to let it affect your DD's relationship with her cousins, and not feel resentful ofthe attention they get - its not their fault mIL is nasty, and your DD can enjoy her freidnship with cousins totally aside from the way you or MIL behaves.
In time your DD may choose to spend very little time with her GM because of this, but at the moment, if she enjoys the time she does have, even though it is inadequate, I wouldn't stop it.
The only time I would stop contact would be if at any point you have anotherchild and your MIl treats those chidren within your family differently. I had that (MIL only liked boys, so my DD ignored) andIreduced contact and was very insistant that she at least treat them openly the same (in terms of gifts, visits etc.) or she treated neither of them.
Your DD's self esteem, and sense of self will come from her relationship with her parents, that is the important one, and you are obviously doing a great job.
A mean old bat is just that - you can't change her you can only recognise what she is and know that it is her problem not yours or your DD's .