I personally like middle names that have a special significance for the parents. If that's James, then that's James...
But I agree, James is imo a little boring.
It is one of the most popular middle names for boys in the UK. (Or maybe even the most popular. I've seen different rankings...
)
Rather "normal" but slightly more unusual middle names that would imo go with your top 3 (particularly Charles😍)
Anthony, Adam, Aaron, Raphael, Banrnaby, Jeremy, Nicholas, Blaise, Vincent, Bartholomew, Nathaniel, Hector, Magnus, Julian, Gabriel, Benedict, Adrian, Lucian, Jonathan, Declan, Marcel, Otto, Matthew, Andrew.