I would like to give a more detailed answer for others here.
In Visual Studio 2010 the web.config transform engine didn't respect xmlns declarations. Because of that if your source web.config had an xmlns declaration, and if you created a transform then the transformation would not work. This is because when we perform the XPath to identify the source which should be replaced we cannot find the value. In order to work around this you should remove the xmlns declaration on the source web.config as well as the transform.
With that being said, in Visual Studio 2010 SP1 we fixed the namespace bug. So your source web.config as well as your transformation must agree on the xmlns, if one has it the other must have it as well.
I suspect that you are using the pre-SP1 bits, but not sure. In order to ensure that the behavior doesn't change if you upgrade to SP1 I recommend you remove xmlns declaration from your source web.config as well as your transforms. The xmlns is not needed in the web.config file so it is safe to remove it.