Within your description template you didn't ask the stylesheet to output anything, you just told it to apply-templates with no select attribute. This processes all children. If the a element doesn't have specific template then the default template is called which just outputs text, as you discovered.
To fix this you can just add a template that matches the a element:
As you need to output an exact copy of the a element then xsl:copy-of is the easiest option.
Joe (Microsoft MVP - XML