Why this happens: the extension function saxon:discard-document is defined to take a single document node as its argument, but you are supplying a sequence of documents. (Sorry, that's almost exactly what the error message already says - I don't know how else to explain it more clearly).
What to do about it: apply the method to each document individually:
<xsl:for-each select="collection('...')/discard-document(.)">
...
</xsl:for-each>
Michael Kay
http://www.saxonica.com/
Author, XSLT 2.0 and XPath 2.0 Programmer's Reference