There were quite a few words meaning ‘man’ in Old English (OE). However, mann, the ancestor of the modern English word man, wasn’t one of them. In the Bosworth-Toller Anglo-Saxon Dictionary the definition of mann is given as ‘human being of either sex’. It only started to be used to refer to male human beings in particular in late OE, from c. 1000 AD. The old sense survives in modern English, but it is no longer the primary one and it has become less common over time. The use of gender-neutral man is still fairly common in compounds like mankind, manmade and manslaughter. In fact, the word woman itself is descended from a compound in which man was used in the gender-neutral sense. One of the two main words for ‘woman’ in OE (along with cwēn, the ancestor of modern English queen) was wīf, the ancestor of modern English wife. The word was used in the sense of ‘wife’ already in OE, but its primary sense was ‘woman’ in OE, and this sense has survived in the compounds midwife and fishwife. Perhaps due to the increasing dominance of the sense of ‘wife’, the compound wīfmann (‘woman-person’) started to be used more often for ‘woman’ until the ‘woman’ sense of wife became extinct.
OE mann is a descendant of the reconstructed Proto-Germanic (PGmc) word *mann- (of uncertain ending). This appears man in Old Frisian, Old Saxon, Old Dutch and Old High German, maðr in Old Norse and manna in Gothic. As with the OE word, these words originally meant ‘human being’ but later shifted to meaning ‘man’ specifically; the ‘human being’ sense survives as a secondary one in Icelandic and Faroese, but on the continent it has been completely replaced by derived words such as German Mensch. (Mensch is a descendant of Old High German mennisko. From mann an adjective was formed by adding the umlaut-inducing suffix -isk (cognate to English -ish), then this adjectivisation was undone again by adding a nominal ending -o, which would have made the word completely redundant if the meaning of the original noun man had not been changed.) PGmc *mann-, in turn, is probably the descendant of the Proto-Indo-European (PIE) word *mánus, which is also the ancestor of Proto-Slavic *mǫ̑žь ‘man, husband’ (> Russian muž ‘husband’) and Sanskrit mánuḥ ‘human being’. Different explanations have been proposed for the double *-nn- in the PGmc word; Ringe (2006)’s is that the PIE word had an oblique stem *mánw-, PIE *-nw- regularly became *-nn- in PGmc, and the form of the oblique stem was generalised. In the Hindu religion, Manu is the name of the progenitors of humanity, and in Tacitus’s Germania he mentions that ‘[the Germanic peoples] celebrate the god Tuisto, sprung from the earth, and his son Mannus, as the fathers and founders of their race’, which seems to me to strongly suggest that *mann- and mánuḥ share a common ancestor.
As for OE wīf, it is a descendant of PGmc *wībą, which appears as wīf in Old Frisian, Old Saxon and Old Dutch, wīb in Old High German and víf in Old Norse. In the continental Germanic languages the word has been replaced as the word for ‘woman, wife’ by descendants of PGmc *frawjǭ ‘lady’, such as Dutch vrouwe and German Frau. In Dutch and German wijf and Weib remain as words but have acquired a pejorative connotation because of the contrast with vrouwe and Frau; using the original word would imply that the woman is of low birth. The same kind of dynamic is responsible for the phenomenon in English where in public addresses (e.g. on bathroom doors) the words ladies and gentlemen and are used in place of women and men. In Icelandic (and Faroese? I don’t have a good source for Faroese) the word survives, but is old-fashioned and restricted to poetic use; the usual word for ‘woman’ is kona. This word is a cognate of English queen; it is a descendant of PGmc *kwēniz via Old Norse kván. In Gothic, *kwēniz appears as qēns ‘wife’, but there seems to be no trace of this word in the continental West Germanic languages, and kván has died out in the continental North Germanic languages as well. In English, of course, the meaning of the word was specialised to mean a royal wife in particular, although the word can also be used to refer to a gay man and this might be a survival of the old sense of ‘woman’. PGmc *kwēniz is, in turn, a descendant of PIE *gʷḗn ‘woman’. This word is very widely attested in the Indo-European languages: it appears as Proto-Slavic *žena (> Russian žená), Old Irish bé, Ancient Greek gynḗ, Armenian kin, Sanskrit jániḥ ‘wife’ and Tocharian B śana (although no cognate survives in Latin). Ancient Greek gynḗ in particular appears in a few Greek-derived English words such as gynaecology, polygyny and misogyny. What about *wībą? It’s uncertain whether this word is a descendant of a PIE word (it might have been borrowed from some long-lost language in PGmc specifically; it might even be specific to Northwest Germanic since it does not appear in Gothic). A link has been proposed between it and Proto-Tocharian *kwäipe ‘feel shame’ (> Tocharian A kip, kwīp) via a change of meaning along the lines of ‘woman’ > ‘female genitalia’ > ‘shame’, but I think this change is too far-fetched. Although the fact that *wībą was neuter, rather than feminine, is suggestive.
So what was the Old English word for ‘man’? The main one was wer. It started to die out in English in the late 13th century, but it survives in the compound werewolf (‘man-wolf’). The Proto-Germanic form of the word was *weraz, and it appears in Old Frisian, Old Saxon and Old High German as wer, Old Norse as verr and Gothic as waír, with the meaning ‘man’ in each case. However, the word has died out in all of the modern Germanic languages, except in Icelandic (and Faroese?) were it survives, not as the usual word for ‘man’, but as the poetic word ver. The word is also widely attested in Indo-European as a whole; its Proto-Indo-European form was *wiHrós, which appears as výras in Lithuanian, fear in Irish, gŵr ‘husband’ in Welsh, vir in Latin and vīrá in Sanskrit. A few English words, such as virile and virtue, are derived from the Latin form of the word.
The word vir didn’t survive in the Romance languages, either; it has been replaced by descendants of Latin homō ‘human being’. It’s interesting how this change parallels exactly the change in the Germanic languages, where *mann-, another word meaning ‘human being’, replaced *weraz as the word for ‘man’. The word homō can be seen in derived English words like human and hominid which are of Latin origin. However, Old English also had a direct cognate of homō: guma. In Old English, this word referred to male humans, specifically, so it was a synonym of wer; however, it was more of a poetic word, whereas wer was the everyday word for ‘man’. Both words are descendants of a derivative *dʰǵʰm̥mō of the PIE *dʰéǵʰōm ‘earth’ (in Germanic and Latin, the initial *dʰ was regularly lost, and *ǵʰ regularly became h in Latin) which meant ‘something from the earth’. The word guma has survived into modern English only via the Old English compound brȳdguma (‘bride-man’). This compound of course became modern English bridegroom (often shortened to groom), and its meaning has not changed. However, the insertion of the -r- in groom is an irregular development. What seems to have happened is that the word groom came into Middle English (from an unknown source) c. 1200 with the meaning ‘youth’. This was then confused with the -goom element in bridegoom and so the modern form of the word arose. As with wer, similar developments have occured in all Germanic languages. The r-insertion is unique to English, but all of the other Germanic languages have lost their cognates of guma but retain it in a compound cognate to English bridegroom (e.g. German Bräutigam).
As well as *wiHrós, there is another widespread Indo-European word for ‘man’, which had the PIE form *h₂nḗr. This appears as njeri ‘human being’ in Albanian, Nerō (a personal name) in Latin, anḗr in Ancient Greek, and nára (this one also has a secondary sense of ‘human being’) in Sanskrit, and it also appears in the derivatives neart in Irish and Welsh nerth, both meaning ‘strength’. The Greek word anḗr had the oblique stem andr-, and this appears in many English words such as androgyny, polyandry, android and androgen, as well as in the personal name Andrew. It is tempting to link the Greek word for ‘human being’, ánthrōpos, to *h₂nḗr as well, but the presence of -th- rather than -d- in the word is unexplainable if this is the case. The real etymology of ánthrōpos is unknown. Given that the sense of ‘human being’ is attested in Sanskrit and Albanian for *h₂nḗr, it is possible that this was the original sense in PIE, too. Either way, it would have had a synonym in either *wiHrós or *mánus. This shift has the advantage of not requiring a shift from the more specific sense of ‘man’ to the more general sense of ‘human being’; shifts in meaning more often increase specificity rather than generality.
Clearly the senses of ‘man’ and ‘human being’ are quite prone to confusion. I don’t know of any cases where a word has shifted directly in meaning from ‘human being’ to ‘woman’, or the other way around. I’d be interested to hear of examples if anybody has any. The similar shift ‘young human being’ to ‘woman’ seems like it could definitely be possible,, though. The English word girl (which is of unknown origin, first appearing c. 1300) originally meant ‘child’; it was gender-neutral. Over time, it has come to refer specifically to female children. Since the 1500s it has been used to refer to young women as well, and since the 1800s it has sometimes been used to refer to all women, even elderly ones, although this usage has never become standard. So this word which originally meant ‘child’ may in the future have shifted its meaning to ‘woman’. A shift from ‘human being’ to ‘woman’ might be possible via this route, but it would require an initial shift of ‘human being’ to ‘child’. I don’t know whether such a shift is possible; I was going to say it was unlikely, but semantic shifts can happen in all sorts of weird ways, so I don’t really have any idea.
(note: a lot of this post is based on information gathered from Wiktionary and the Online Etymology Dictionary which are not entirely reliable sources. I tried to look up every word cited here in a dictionary specific to the language the word belonged to, to make sure I didn’t end up citing words with the wrong meaning, or citing words that didn’t actually exist. However, it’s hard to find freely available online English-language dictionaries for some of the more obscure languages like Faroese, so I wasn’t able to do this for every word; and given that this post ended up involving a lot of words from a lot of languages it’s quite possible that some errors in detail are present. The PGmc and PIE words cited have been checked via Ringe (2006), From Proto-Indo-European to Proto-Germanic.)