Why "de ani de zile"? Why not just "de ani"?
Your answer is correct too. However, the given answer is a more natural and popular answer.
I think that Present Perfect Continuous would be more appropriate than Present Tense here:
Ele trăiesc de ani de zile pe insulă. = They have been living on the island for years.
What about "they have lived on the island for years"?
I think so too.