Although I don't speak another language it seems to me that Britain has a vast range of accents compared to other nations, not only that but across such small distances. Liverpool for example is only 33 miles from Manchester yet has a massive difference in accents? Is this common in other countries and is it simply due to lack of migration during medieval times?
I am being serious, but doesn't everywhere?
Note I am English and assumed this is pretty normal.
This is common and often more pronounced in other countries.
French, German, Italian, and Spanish all have similarly diverse local accents and dialects. Some people even argue that Italian as a language doesn't really exist.
As an American, I can relate to your experience - our accents tend to be spread over much larger areas than accents in the UK.
There was a recent study in Nature that looked at genetic material from older people across the UK whose grandparents were born within 70km (or miles?) of each other. This allowed them to get a sense of the genetic sequences of people living in 19th c. Britain (because all our genes come from our 4 grandparents, and these people's grandparents all came from within the same region, studying the genes that they passed down to the person being tested allows us to glimpe 19th century regional genetic variations). The study found that different regions in England have small but significant genetic differences, suggesting that people tended to marry within their local regions and not move to other parts of the island in the 19th century. People lived and died where they were born - and there's no reason to assume this stability was not true for many centuries before the 19th, as the boundaries between groups tended to follow geographic features (mountains, rivers, etc) that naturally separate microregions.
It's not surprising then, perhaps, that local dialects develop or persist within these regions.