uno dei problemi che spessono possono capirtare con BizTalk e eseguire UnBatching su un messaggio di Envelope, in generale esistono principalmente due modi: 
1) Non lo configurate come Envelope :-) e lavorate sul messaggio per eseguire il debatching a mano. 
2) Lo configurate come Envelope e se vi occore trattare il messaggio nella sua totalità lo passate a una orchestration che accetta un tipo xmlDocument generico e utilizzate una pipeline di tipo passthrough
Successivamente potete trattare il messaggio all’interno della orchestration utilizzando delle pipeline interne.
 In particolare: (chiaramente i nomi delle variabili sono indicativi)
 Si crea una pipe con un xml disassembler component vuoto di nome, esempio miapipeline , successivamente una variabile di nome PipelineDeBatch di tipo receivepipeline
In prima battuta deve essere istanziata...
PipelineDeBatch = Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteReceivePipeline(typeof(mioprogetto. miapipeline),MessaggioIN);
 dove MessaggioIN è il messaggio in entrata di tipo xmlDocument.
 Successivamente si lavora sul messaggio interessato in questo modo:
PipelineDeBatch .GetCurrent(miomessaggio);
Dove miomessaggio è un object message con associato il tipo schema del messaggio di debatching che desideriamo estrapolare. 
In questo modo possiamo lavorare con envelope in modo estremamente dinamico.