You should definitely not call it B flat because everyone would have a brutal time typing it out. C# was bad enough for that. Also, "flat" just sounds bad. I also wouldn't name it C anything because it doesn't look anything like C, and using C in the name implies that the syntax looks something like C and is derived from it.
As for how names are found ... well, I know C# was picked because it's derived from C++ syntax, C+++ is just too many +'s but # looks like a bunch of pluses put together, 4 of course, and that's close enough to emphasize that C# is an evolution of C++ in a sense, but quite different).
F# - F obviously F stands for Functional. They didn't really need the #, but there's already an F - a subset of Fortran, so the # distinguishes it from F and also hints that it's a .NET language, because of C#. Having a musical connotation in .NET languages kind of ties things together. I always wondered why they didn't call VB.NET, VB#. Actually they could drop the V(isual) altogether ... it's kind of lost it's purpose considering that many languages have drag and drop designer based IDEs now.
H, N, O, P, U, V, W, and X are the only single-letter names not listed in Wikipedia. P would be too funny to use in conversation: "I wrote it in P". In general I don't think single letter names are a great idea nowadays.
You should consider what you would find if you tried a Google search ... I heard the creator of Clojure said he picked the name because it sounds like closure and nothing came up in Google when he searched for that. If you search for XVAR now, you see the domain name is taken and there are some technical references related to Cisco, and other various results.
I can't believe there's no language called Babbage.
EDIT: There is a language called Babbage ... it's not in the Wikipedia list referenced above, but is present in Wikipedia: here. (Update: I've added it to the list of programming languages page.)