Jack is quite plain. London isn't a bit chavvy, and is generally used for girls. Beckham is a bit like naming your son MichaelJackson to me. I love Ferdinand, but FerdinandEdward is a lot of D's. Why not simply go for British style, rather than being so literal? For example, Rupert, Rufus, Bruno, Hugo, etc. Otherwise, why not look at British history and find some names from famous people?

INTJ Anthropologist Living in the centre of China, married to a Persian, and just enjoying a completely unpredictable life

Of your options listed, I think London is the only one that is obviously tied to Britain. I think LondonEdward sounds nice. Yes, London is used more for girls, but I don't think it's necessarily a "female" name. I can definitely see it on a boy. Jack just has too many other associations--nobody would think of the Union Jack, I'm afraid. Beckham is honoring an athlete rather than Britain as a whole. Other ideas you might like: