While those lists are fairly accurate, there are still plenty of places in them which could give rise to dispute. For example, should the towns of Tunstall, Burslem, Hanley, Stoke, Fenton and Longton be included? (If you vist them, you'll find that they're distinct places, each with their own character. Officially, however, they're not 6 towns but one city: Stoke-on-Trent).
Also, should each London borough be included? London isn't (officially) a city. It consists of two cities (the City of London and the City of Westminster) and many boroughs. Perhaps each one ought to be counted as a town?
People could also argue about whether Rochester is a town or a city. Officially, it reverted to being a town when the local authority failed to appoint trustees for its city charter but it's still known as the City of Rochester upon Medway.
You'll never get an accurate, meaningful count for the number of villages in the UK. There's no statutory definition of a 'village'. Many people live in villages which fall within the boundary of a neighbouring town. Should these villages be counted or are they simply part of the town?
Similarly, here in Suffolk, we have places like Rickinghall which, on most maps, appears as one village. If you go there, however, you'll find that its actually divided into two. (Rickinghall Superior & Rickinghall Inferior). So does it count once or twice? And what about the people who live in the neighbouring hamlets? The residents will state that they each live in a distinct 'village' but the postman might just regard them as outposts of Rickinghall. So, one village on the map could actually be regarded as many different villages by the people who live there.
Chris