The difference between 'Herzlich willkommen' and 'Willkommen' is probably clear, the first one is more polite and sounds friendlier.
'Gern geschehen' is the reply to 'Danke', when someone has helped you.
Beispiel:
Danke, dass du mir geholfen hast.
Kein Problem, gern geschehen.
Translatiion of 'gern geschehen':
Don't mention it!
You are welcome!
My pleasure!