In Scatterheart, the character of James was originally Jack, and he was the ship's carpenter. But it turned out it's really hard to make a humble tradesperson unlikeable, so he became new-money-aristocracy instead (much easier to dislike). Jack felt like too honest a name, and James was the logical alternative.
In The Not Quite Perfect Boyfriend, Ben was originally Steven. He was Steven because when I was thirteen and made up an imaginary British boyfriend, that's what his name was. But then I started writing Angel Fish, my book about the Children's Crusade, and one of the main characters in that is Stephan. And he really existed (well, maybe), so I couldn't change his name. Except a name-change for Steven was very complicated, because I had this whole word-play thing going on with his initials spelling out SOW and SLOW. And at first I thought I'd just replace Steven with another S name. But there was already a Sam and a Spence in PINK, and what with Stephan in Angel Fish as well it all seemed a bit much. So Steven became Ben, after the first boy I ever had a proper crush on, and I changed the initials thing to BOW and BLOW.
The name-change in PINK was much more straightforward. It turns out there is already a Spence in Penni Russon's next book, which comes out before mine. So I tried to think of another preppy-jock-name, and came up with Nathan, Ryan, Dylan, Logan, and finally Ethan. I don't know why I find -an names preppy/jocky. I just do. But Ethan he is.
PS. You want some wacky name fun? Let me introduce you to Barkevious Mingo, Calamity McEntire and Taco Vandervelde, over at Name of the Year.