Why do some say “hagEfen”, while others say “hagAfen”? Any difference?
The reason that there is a custom of saying gafen and gefen is both a grammatical, as well as a historical one.
The Grammatical reason is that there is a vowel switch when Hebrew words are in "Pausal Form"
Words marked with either an athnah or a silluq, or followed by a sof pasuq are “in pause.” When a word is “in pause,” the vocalization is slightly changed. The change is manifested by minor changes in the vowels of the word. Note the following four changes that occur:
A qamats may change to a patah. For example, כָתָב becomes כָתַב.
A segol may change to a qamats in a segholate noun. For example אֶרֶץ becomes אָרֶץ.
Words with the accent on the final (tonic) syllable may shift accent to the previous (pretonic) syllable. For example, as the accent shifts כָתָבָה becomes כֳתְּבָה.
The 2nd person masculine singular pronominal suffix retracts. For example, לְךָ becomes לָךְ which is identical to the 2nd person female singular pronominal suffix form.
However, this is unique to Biblical Hebrew and stops by the time of Mishnaic Hebrew as Aramaic had by then totally influenced the language. So therefore when blessings are instituted by the Rabbis, they are never in this pausal form. So originally, both Ashkenazim and Sephardim used to say בּוֹרֵא פְרִי הַגֶּפֶן.
This is attested to by The Ashkenazi Haggadah, which is the 15th-century manuscript by Joel ben Simeon.
This is also attested in the Birds Head Haggadah, which is the oldest illuminated Ashkenazi haggadah in existence from the 1300s
As time went on, Ashkenazi scholars decided to make the Hebrew blessings more in line with biblical Hebrew, which would mean that since the word גֶּפֶן is at the end of the sentence, then its pausal form should be גָּפֶן. But the Sepharadim did not make these changes to their blessing, so it remained as it always was, גֶּפֶן.
Note: Recently Hacham Ovadia Yosef said that indeed גֶּפֶן is the correct spelling because according to him, the blessing does not end with גֶּפֶן, but rather it ends with אָמֵן, which means that גֶּפֶן does not need to take the pausal form.
Note: Yemenites also have a custom to say גָּפֶן. I'm ignorant as whether this was always their custom or whether they underwent recent grammatical changes as well.