If you have an orchestration that receives an XmlDocument parameter, when you call it from another orchestration, you will receive a compile error regarding UnderlyingXmlDocument.
The problem is that Biztalk can not use XmlDocument since it is not serializable, so Biztalk wraps it in another type called Microsoft.XLANGs.RuntimeTypes.XmlDocumentSerializationProxy. So basically you have to use this type instead of XmlDocument.
Here you can find all the details of the process, on Martin's blog (a great source of inspiration) :
http://martijnh.blogspot.com/2005_04_01_archive.html