I'm a native speaker from Ireland- they sound different to me and I pronounce them all differently- I also pronounce all the "R"s, unlike many native speakers from the UK
Mary rhymes with hairy - same vowel sound as bear
Merry rhymes with berry - same vowel sound as bed/ten/said
Marry rhymes with Barry - same vowel sound as cat
I'm a native speaker (Scottish) and they are all recognisable in isolation and out of context to me. They all have very different vowel sounds to my ear!
Yes, I hear a difference between all three of them, and I pronounce all three of them differently. However, this is regional.
With regard to recognizing them out of context, I've made a Vocaroo recording of a few lines from the song:
"We wish you a merry Christmas, we wish you a merry Christmas, we wish you a merry Christmas, and a happy New Year."
I sing it three times. Once I sing it correctly. Once I sing it using the name "Mary" instead of "merry." And once I sing it using the word "marry" instead of "merry." I believe native speakers will instantly be able to identify the correct version, and will be able to say which word is used in which version.
The pronunciations of "Mary," "merry," and "marry" is one of the questions used by this amazing New York Times demonstration:
(If you are a native US speaker you can answer their 25 questions, and it shows which parts of the country have the pattern of answers most closely resembling yours--and it often pinpoints where you are from, with amazing accuracy).
To me, "marry" has the same "a" sound as "bat" or "mat," and rhymes with "Larry," "Harry," and "parry."
"Merry" has the same "e" sound as "bet" or "wet" or "set" and rhymes with "berry," "very," and "Terry."
"Mary" is not quite the same, but close to, the "a" sound in "hay," "way," and "say," and almost rhymes with "dairy," "wary," and "nary."
"Mary" and "merry" are close, but not the same. However, people can and do make puns on the two words.