Hello Kitty (no pun intended)
The verb 'ben' comes from the verb 'zijn', which means to be, and is most commonly used as an auxiliary verb.
The verb 'heb' comes from the verb 'hebben' which means to have, and is also mostly used as an auxiliary verb.
In Dutch we use the verb 'ben' almost in the same way as we would 'am' or 'be' in English. It is an active verb, describing action.
Ik ben hier
I am here
Ik weet niet of ik op tijd ben.
I don't know if I am on time.
Ik weet niet waar ik ben.
I don't know where I am.
We would use 'heb' in a sentence that has to do with possession(s). It is a passive verb which describes situations.
Ik heb een auto.
I have a car.
Heb ik genoeg geld bij me?
Do I have enough money with me?
Ik heb de tijd.
I have got time.
In the case of gehad, it would be the same as in English 'I have had'.
Gehad is the past perfect tense of hebben. It is having or possessing something, so we use heb.
You wouldn't say in English 'I am had' because that would change the meaning of what you are trying to say.
When you have forgotten information (phone number, name, appointment) you can only use 'ik ben vergeten'
Ik ben vergeten hoe hij heet
I forgot how he is called (i forgot his name)
Ik kende die mop wel, maar ik ben hem vergeten.
I knew that joke, but i forgot it.
When you have forgotten something (as in your wallet, watch, keys etc.), we can use both 'heb' and 'ben vergeten'
Ik ben mijn paspoort vergeten.
Ik heb mijn paspoort vergeten.
I forgot (have forgotten) my passport.
Ik denk dat ik mijn portomonee vergeten ben.
Ik denk dat ik mijn portomonee vergeten heb.
I think i forgot (have forgotten) my wallet.
If the full sentence of something would be 'Ik ben vergeten.' this would mean 'i am forgotten' not 'they have forgotten me'.
This would be extremely rare though, because 'ik ben vergeten' is usually followed by something.
I hope this helps.