The source of MSFormatDateTime from .NET Framework can be found here:
The workarounds for .NET seem to work:
<xsl:value-of select="ms:format-date('2001-02-03T01:02:03', 'd', 'en-gb')"/>
<xsl:value-of select="ms:format-date('2001-02-03T01:02:03', 'd', 'en-us')"/>
<xsl:value-of select="ms:format-date('2001-02-03T01:02:03', 'D', 'en-gb')"/>
<xsl:value-of select="ms:format-date('2001-02-03T01:02:03', 'D', 'en-us')"/>
<xsl:value-of select="ms:format-time('2001-02-03T01:02:03', 't', 'en-gb')"/>
<xsl:value-of select="ms:format-time('2001-02-03T01:02:03', 't', 'en-us')"/>
<xsl:value-of select="ms:format-time('2001-02-03T01:02:03', 'T', 'en-gb')"/>
<xsl:value-of select="ms:format-time('2001-02-03T01:02:03', 'T', 'en-us')"/>