Funny enough, the reason why Mädchen is neuter is because it's got the 'chen' at the end. If you look at old German, things with 'chen' and 'lein' are in the diminutive form. Die Magd (the maid) becomes Das Mädchen (the little maid). But in German, putting those postfixes neutralizes the gender, making the word neuter. More details here: http://blog.assarbad.net/20090810/das-madchen-why-is-it-grammatically-neutral/
Traditionally they say that -ín in cailín is not a diminutive, but I can hardly believe that. Maybe the diminutive in that word isn't recognised consciously anymore, but the meaning of (little) girl totally fits to where other language make it a diminutive, like German 'Mädchen'. Maybe it is motivated far more in the past. But I don't like it when language resources are always pointing out that natural gender and grammatical gender sometimes don't fit and they pull out diminutives... It is a grammatical rule that makes them neuter. In German it could happen to every word: Frau f. > Frauchen n., Herr m. > Herrchen n., Mann m. > Männchen n.