I'm assuming the ampersands have somehow been lost in the system.
Your "entities" are not entities at all, but character references. It doesn't make a big difference in this case, but it's always easier to get information on a topic if you use the right terminology.
The XSLT processor can't retain character references because it doesn't know they were there. The XML parser converts them into regular characters. The recipient of the XML isn't supposed to make any distinction between a character reference and the character it represents, so the XML parser doesn't provide this information.
What you can do is to force non-ASCII characters to be represented in the output using character references by setting <xsl:output encoding="us-ascii"/> (or encoding="iso-8859-1" if you prefer).
However, this will cause a serialization failure if you have non-ASCII characters in places where character references aren't allowed, for example in element names or in comments.
I would accept a statement "I *want* to retain the Unicode [character reference]" as a reasonable requirement. Saying "I *need* to retain" gives me concern - it suggests that the XML is being sent to a recipient that can't handle arbitrary well-formed XML, and that's always bad news for the robustness of your system.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference