I don’t really have much to offer other than wild speculation, but, here it is FWIW:
It strikes me that “ain’t” is a rather busy contraction: it’s used for am not, is not, are not, and have not (at least, by those who use it at all). For example, in the usage “I ain’t got a clue” ain’t seems to mean “have not” (at least, I can’t think of another way to make it “work"). In something like, “if it ain’t broke, don’t fix it,” it stands in for “isn’t”. In, “hey, i ain’t deaf, it means “am not” (amn’t? An’t?), and it means something similar (with some “cheating” as to word placement) in, “I’m here, ain’t I?” (am I not?). (or perhaps “am not I”, although the latter sounds very odd to my ear, but, then again, many things that sound odd to me either were or are standard usage).
To take the wag further, perhaps ain’t was used as a variation on “hain’t” at some point by some people, and as a variation on “an’t” (itself a variation on amn’t) at some (other?) time by some (other?) people. At some point, the two usages became conflated, and various english speakers used ain’t for both haven’t and an’t, with isn’t and aren’t joining the party at some point. A word with such a confusing ancestry and surplusage of usages was bound to draw the wrath of the prescriptiviists, as, indeed, ain’t did.
A final wag: perhaps language hat’s observation regarding how “m” is pronounced like “r” in some dialects helps explain how “aren’t” ended up pairing up with “I” in “aren’t I”: aren’t may be an alternate pronounciation of “amn’t”. (the quinion article seems to hint at this). It may also have played a role in the overlap in usage between ain’t, amn’t, and aren’t. (I also suspect, but don’t really know, that ain’t and aren’t sound more similar in some dialects than others, which may have been yet another source of overlap/conflation in usage between ain’t and aren’t).