Since you're using MS-PL and Apache 2.0 components, you're restricted by the MS-PL license and the Apache 2.0 license. This means you can't use the GPL anyway, since it's incompatible with MS-PL, and version 2 of the GPL is also incompatible with Apache 2.0. Given that, I would suggest releasing your parts either under MS-PL, Apache 2.0, or a BSD-style, so you're not adding requirements.
You can read the licenses to see what you have to do. They aren't long. With MS-PL, you can do pretty much everything as long as everything's released under MS-PL and you include the entire license (which isn't long). With Apache 2.0, it's pretty much the same, except that you need to include any NOTICE file. You do have to include all attributions, etc., and that's pretty standard across OS licenses.
You really can't add to the licenses. You are free to put any disclaimers you want. You can put them in a NOTICE file, which under Apache 2.0 requires them to be preserved.
You should list which files are under which licenses, and you do have to include full copies of MS-PL and Apache 2.0 in the package.
Be careful about ADO.NET Entity Framework CTP4, as you say you can't find a license. If you can't find a license, ordinary copyright law applies, and you can't legally use it. You may want to write to whoever owns that code, and see what license they use.
As far as copyright ownership goes, you can never retract open source licenses for the versions you release under them, but if you own all applicable copyrights you can relicense as you wish. Some companies, like MySQL AB, released what they had under the GPL, and would sell other licenses for money, so that (say) another company could use MySQL as a part of their commercially sold product without having to release under the GPL.
Since you're using components owned by other people, you really can't do that with the entire project, but you could with your portions.
To do that, you'd have to get everybody who contributes to fill out a copyright assignment form, along with some proof that they do own the copyright (and, for example, that it doesn't count as work for hire for an employer). This does tend to diminish user contributions, so you may want to skip it entirely. You might want to look at what the Gnu project does, since they do want complete copyright, and emulate them.
My specific question is "how do you select which one you want to use." In my case, I want to only use the BSD license and I want to make it explicitly clear that I do not opt into the GPL v2 license in any way.
You just do. Unless you don't change the source-code there, you don't even need to touch the plate. It can be stayed as is, yes, even touching it for no reason might look more suspicious then just leaving it as-is.
The licenses are offered to you btw. Into which one you opt, you can say anytime, you can choose anytime which one. The one day you might like BSD and the other day you might even use GPL. Both is possible. You can even choose both, even if they both would be incompatible to each other. Only based on the fact the original author(s) did dual-license it.
How do you do that and have it hold up to legal challenge?
No-one can predict the future, but keep references of the websites of today, so that you can document that you've taken care and you can back-up your statement that the dual-license is disjunctive (OR) and not conjunctive (AND).
As long as it's clear that you were allowed to use the software under the terms of the BSD license (and you fulfilled the requirements) I see no reason why it shouldn't hold up a legal challenge, I can not even imagine of which kind such a legal challenge would be?
Best Answer
Each library that you use as a dependency should have a LICENSE file in their source code. I would just take these licenses and rename them to "LIBRARY_NAME_LICENSE" and include it with the source code.
I know licenses (like the BSD license) require that the original license be included when any source code is reused.
If you are just using these as linked libraries, I don't believe any of this is needed. But I may be wrong about this one.