I prefer two that aren't on your list: Maryanne or Mary Ann (as two middle names without a hyphen or mushing them together).
I actually have always preferred the spelling Marianne.
That would be my vote, too...makes me think of 'Sense and Sensibility.'
Actually we're of the opinion that yes you're correct Marianne probably looks prettier, but MaryAnn, Mary-Ann or Maryann has more connection to the two grandmothers named Mary and the grandmothers named Ann and Anna and a Mary with the middle name Ann.
Of the three you have listed, my vote is for Mary-Ann.
I'd say Maryann, because I'm opposed to punctuation and internal capitalization in names.
I'd go with Maryanne, then.
I have a very good friend with this name. I love it, it is sweet and wonderful on her.
She spells is Mary Anne... and gets it misspelled all the time. I think the most common spelling is the single word of Maryann, or MaryAnne. Honestly, given your Grandmother's name is Ann, I would go with Maryann as one first name. Or with Mary as the first and Ann as the second.