In Part 4, I show how to stream an XML invoice which has multiple parent-child hierarchies very similar to what you are talking about. In Part 5 I show how to stream and send invoices to multiple vendors from an SSIS package. I am writing Part 6 right now, which shows how to shred an invoice, just as you are asking. In part 7, which I haven't started yet. I will show how to shred multiple incoming invoices each having distinct schemas.
Part 4, coming out next week, gives you in inverse view of how to handle shredding. It will probably give you a pretty good idea of where I am headed.
Hope this helps.