Gene drift greatly affects small populations, but large populations can recover.
What is a gene drift:
A gene drift is the different rate of the gene variants of a species, to explain it in a simple way.
According tio Wikipedia:
"When there are few copies of an allele, the effect of genetic drift is larger, and when there are many copies the effect is smaller."
So in your case, in mainland, where there where more individuals, recovery was possible but in the island, where there was a limited amount of individuals, recovery wasn't possible.
Hope it helped,
BioTeacher101