Hello Dan!
We were experiencing the same issue when updating from DTD-based stuff to XSD with Namespaces. Copying over our old stylesheets, it somewhat worked. Somewhat.
The first thing to notice, Synchronization between the Editor view and the Styler contexts does not work - which is correct, considering that <para> and <{someNamespace}:para> are not the same elements. However, styling did work.
The second thing which made quite some problems there, we are using kind of compound construct that includes other doctypes using XInclude, and of course also uses parts of their stylesheets in a compound stylesheet. Namespaces broke that, as (like above mentioned) <{nameSpace1}:para> is not the same as <{nameSpace2}:para>. As this one is generated, and only for publishing, we decided to run an XSLT before publishing that removed all Namespaces but the root-one.
Looking at other people that use this techniques, we saw that the folks over at the AECMA (Specification 1000D, for those who ever heard of it) were using noNamespaceSchemaLocation instead. And in-fact, this works like the DTD ones, even with compund ones.
So I'd recommend switching over to noNamespaceSchemaLocation if there are no other limitations that require Namespaces.
You should also note that we experienced bigger problems with that before when upgrading from 5.2 M040 to 5.3 because they appearently "fixed" Namespace handling - which pretty broke above workaround. We did switch over to noNamespaceSchemaLocation already, but for some older legacy stuff, we still have to support the ones with xmlns. For those stylesheets, we had to change attribute matching and certain contexts to use local-name() rather than the node-name itself.
I hope this helps on your problem.
Greetings, Wlaschitz Emanuel