Q1. In XSLT 1.0 the best way to compare the dates/times is probably to reduce them to numbers. Strip the space and colon and convert to a number by using
number(translate(., ' :', ''))
and then just compare using "<" or ">".
In XSLT 2.0/XPath 2.0 there are more specific ways of comparing dates and times, but only if you use the standard ISO representation which is yyyy-mm-ddThh:mm:ss.
Q2. A more robust method to copy the element is to include the identity template in your stylesheet and then use xsl:apply-templates. The identity template rule (one variant) looks like this
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference