Your Mil has no right to insist that your Dd should stay at home just for her.
This is what teenagers do in preparation for flying the nest, and you obviously understand that it both natural and appropriate behaviour from your Dd.
You could turn the tables and remind your MIL that as she is the adult and it is up to her to reach out to your Dd if she wants more one to one time with her. Any sensible parent or grandparent knows that at this age teenagers are easy to bribe with money. Perhaps your MIL could offer a shopping trip with your Dd?
My mother was like this. We had a family gathering where my Dd hadn’t seen my relatives for ages. All her same age cousins were there and she had a lovely time catching up.
My mother complained a few days later that my Dd hadn’t come up to talk to her after saying hello. We had all been sitting in the garden, my mother was hale and hearty and fully mobile and my DD was only 12 yearly old. I also wondered who was the adult here.
Regarding the longer term issue, I think you need to start stepping back re the hosting. If you can make sure your husband is always at home when MIL visits and cohosts. Then start finding reasons to leave the room and leave your DH with his mum. Baby steps, subtle and gradual until you hardly have to be there. Then she can moan to her son that she never sees her DIL anymore! (That would take the pressure off you and your Dd!)
Even better your Dh takes himself to visit his mum and whichever kids want to go.
His mum, his responsibility.