Hallo,
zu 1. schon mal
<xsl:template match="elem">
<xsl:value-of select="."/>
<xsl:apply-templates select="toinsert"/>
<xsl:value-of select="."/>
</xsl:template>probiert?
Autch!
Damit gibt er den Textinhalt vom "elem" vor _und_ nach "toinsert" aus, d.h. doppelt.
Grüße
Thomas