In London there is a street in Knightsbridge spelled Beauchamp. The English pronounce it as though it were spelled Beacham. Why?
As with similar cases like Beaulieu, Belvoir, Cholmondley, Fetherstonhaugh, Leicester -- (Bewley, Beaver, Chumley, Fanshaw, Lester) -- it's because English spelling changes much more slowly than English pronunciation. Old families had their name written down a long while ago and there's great risistance to spelling reform in English. Despite this, the spoken language changes as all languages do, as vowels move, consonants are elided, and so on. The result is that the two drift apart.
But also remember that many of these words come from languages (such as Norman French) which even at the point of divergence way back in history weren't pronounced in the same way as their modern equivalents (eg Modern French). Beauchamp, as an English family name, was probably never pronounced as it is in modern French. In the eleventh century it would have been pronounced in a way which would sound odd to both English and French ears and then each language went its own way and the spelling? Well, the spelling stood still.
I suspect the name, and more potently the surname, Beauchamp, would have been pronounced as in the French dialect until at least 1485. Those who do, will recall this was the pivotal year which saw the end of the so called 'Wars of the Roses' (itself a romantic contrivance from the Victorian era) The battle of Bosworth, fought on 22 August 1485, also pressaged the end of the Plantagenet line and saw out the Medieval Age. I also strongly believe that, by tenuous, treasonous and unfounded claims, the Tudor regime came to power. Ever thus it has been. To the point, pronunciation of Beauchamp, along with numerous others from the Norman invasion, would quite probably have been Anglicised to help enforce the Welsh Tudor claim and distance the new dynasty from all and any French English origins.
It comes down the old pronunciation. French has chanced dramatically over the centuries ,just listen to Canadian French. The Normans certainly never spoke the French of Paris. In the Middle Ages in France hardly anyone spoke French. Hard to believe today but look at the English language at the time of the Conquest it was still unsettled and most people spoke language more related to German than anything we know today. Beauchamp is spoken as Buuhshom and eventually becomes Beechham, that is as close as I can phonetically put it.(I think the mystery is why was the spelling not changed). Like Belvoir you drop the L and it becomes silent so we have Bevoir Bevere and end up saying Beaver. Marleybone was Marie la Bon. The English have always had trouble with French and nothing has changed.So English struggling to get their heavy Germanjc accents around French changed the sounds.