Epenthesis to avoid word-final C + /w/ or C + /j/
English words can't end in a consonant followed by /w/, so presumably the /o(ʊ)/ developed either as an epenthetic vowel between a consonant and word-final /w/, or as a vocalization of the /w/. The modern English spelling suggests the "epenthetic vowel" analysis.
Similarly, in place of a consonant followed by word-final /j/ we see consonant + /i/ in modern English, e.g. belly < OE bælġ < PG "*balgiz" according to Wiktionary.
Variation between /əʊ/ and /ə/ probably isn't based on the identity of the Old English consonant
I'm not convinced by your suggestion that the pronunciation of "borough" as /ˈbʌrə/ in British English can be explained in terms of it coming from Old English "burh". As Alex Foreman's answer says, /ə/ instead of /əʊ/ can occur in an unstressed final syllable for many other words (including ones like meadow that didn't use to have /x/), not only for "borough". It's true that "borough" is spelled with "ough" instead of "ow", but I don't know whether that's related to the pronunciation.
Also, the pronunciation of the monosyllable bow as /bəʊ/ is not really relevant, because in stressed syllables, /ə/ is not possible, or at least not expected, in most accents of English. (The /əʊ/ in a Standard Southern British English pronunciation of bow is usually analyzed as a single diphthongal vowel phoneme, not as a sequence of /ə/ + /ʊ/.)
I think that Old English words with "g", "h", or "u" or "w" could correspond to words pronounced with final unstressed /əʊ/ in modern English.
/əʊ/ from words with g: I've read that in word-final position, Old English devoiced /ɣ/ to [x] (but in writing, either "g" or "h" could be used). The "h" in "burh" actually seems to be a devoiced /ɣ/: it could be spelled "burg", and [ɣ] shows up in other parts of its declension like the genitive plural burga.
/əʊ/ from words with h: The OED says the word "farrow" (cognate to Anglo-Saxon fearh, from PG *farhaz) is pronounced as /ˈfarəʊ/ in British English.
/əʊ/ from words with u or w: callow corresponds to OE calu (which had w in inflected forms).