I'm glad you've realise it's not what you first thought. ;)
"Have" is in the gerund form, because it follows "despite" and it begins a noun clause. Look at it this way:
"They have worked together for three years at Real Madrid..." (ie. their experience, relevant to now)
"...(but) the coach says the two do not keep in touch." (this is your present tense: "says". So the present perfect in the first clause matches with this timeframe)
Rearranging the statements and adding "despite", we have: "The coach says the two do not keep in touch, despite having worked together for three years at Real Madrid."