We were recently having some fun trying to get an American guest to pronounce Lavenham the local way. Tourists often ask the way to "LayeVenn Haym" and it takes a while to understand that they mean Lav'n'm. We get great mirth from hearing furrners calling 'Av'r'il (Haverhill) "Hayverr Hill".
Actually, the correct enunciation of placenames goes much further. Chelmsford is pronounced "Chensf'd", Braintree is "Braantry". (Branketre in Edward IInd's day, later Brarntry in 1720). Somewhat perplexingly, the ancient pronounciation of Sawbridgeworth is 'Sapsworth' or even Saps'th. Coggeshall is often referred to as 'Coxall'. Pentlow was pronounced "Pantle"; and its famous pub was the "Pink'us".
If there can be a general rule, we enunciate the first syllable of the place-name, and then let the rest of the word decay into a few consonants. 'Foxuth', or 'Foxud' (Foxearth, spelt 'Foxheard' on some old maps), 'Glessfd' (Glemsford) and so on. However, in many cases, it is difficult to explain the differences between written and spoken forms. Why, for example does one refer to the River Roding as 'Roothing'?
It is a mistake to put the mismatch between spoken form and the written down to local illiteracy. Old maps and documents often spell the names rather closer to the vernacular pronounciations. It is the modern spellings that seem to have drifted. For example, the Stour, which should be pronounced 'Stur', used to be written 'Sture' or 'Stur' c995. Haverhill is spelt much better as Haveril in Bowen's 1720 map of essex.
Sometimes, perfectly sensible names have been corrupted through errors in transcription. Rodbridge is simply 'Rode Bridge' (Road Bridge) on the early maps, and so the local pronounciation is actually more correct.