Ok, I need an outside perspective on this, probably more than one

B/G MIL had a 20 yr separation from her only sister who coincidentally lives an hour from us. She lives 2 flights from us. Recently she got an apartment in our city for part time. She stays there mainly to be away from her husband, which I completely understand b/c he is a piece of work.
Our family situation is that DH & I have a DD who will be 2 next month.
End B/G
I like my MIL but I find her generally frustrating. Here's the most recent episode:
MIL is alternately generous and stingy with her time. One time she will email us that she is coming to visit and that she'd like us to pick her up at the airport (obviously) and then take her back to our house (obviously). Then the next day she'd like to be driven to her sister's house an hour away and we pick up her sister and bring her back to our house for several days (huh?). Then we should drive her and her sister back to sister's house and leave them there til she wants one of us to come pick her up.
The next time she comes she'll say, "I'm at your disposal to watch DD anytime so you guys can get stuff done." And she does follow through.
So the Christmas situation...
She asked for us to pay for a Bible study course as her Xmas gift. It was $400+. I didn't mind.
I went onto a popular photo sharing/storing site and made her a calendar from DD. She knew she was getting it b/c DH mentioned it in front of her but I figured, she's an adult, so that's ok.
So DD gives it to her and she looks at us and snaps, "We're not exchanging gifts."
I was stunned. I said, "It's from DD and <name of our cat>. She had to go through "cat" to get the money b/c he's the only one with access to the accounts." I generally react to things with humor (and sometimes sarcasm) so I tried to diffuse it in that manner. She opened it and acted pleased.
So now I know that DD is not getting a gift from her on Xmas. It's fine this year b/c she doesn't really get it. In the future I have no idea if she will get a gift from Grandma or not.
What can I possibly say to all the parties involved? MIL... DH...DD...