Had Had, Have Had, or Am Having? [duplicate]
My choice would be "have been having", but since that choice isn't there, I think "have had" would be better because it implies that the dream has been recurring up until that point.
You'd say "had had" if those "many years" take place prior to "last night." When you are speaking in the past tense, like "dream I had last night," and you need to then say another past action happens further into the past from that past tense timeframe, like "one I (have) for many years," use the pluperfect tense, so you'd say "had had" since it's the pluperfect tense of "have."
But if you want to show that you think that the past action "have" from those "many years" exists some way in the present or has some present effect, then you'd say "have had" because that is the present perfect tense and that's what the present perfect tense is used for, like if you include the present in those "many years," then you'd make the verb "have" its present perfect form "have had."
Saying "am having" in that sentence is unnatural. That's a wording only a non-native English speaker would use.