xsl:copy copies an element together with all its namespaces. In 2.0 you can use copy-namespaces="no" to prevent this. In 1.0 you must use xsl:element:
<xsl:element name="{local-name()}" namespace="{namespace-uri()}">
The code as you've written it should work except that it also changes the elements to be in the null namespace, which isn't what you said you wanted.
To remove attributes, a better approach is rather than
<xsl:template match="*|@*">
<xsl:choose>
<xsl:when test="name()='aid:pstyle'">
override the identity template with
<xsl:template match="@aid:pstyle | @aid:cstyle/>
so when these attributes are matched, nothing is output.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference