If I understand this correctly, what you have is an email message with multiple MIME parts. Some of those parts are other email messages that also have MIME attachments. This is what the tools in MIME-tools (e.g., MIME::Parser) are designed to deal with.
in reply to Re^2: Compress email attachments
in thread Compress email attachments
May I suggest that you start with something simple? Start with a message that has a single attachment. Write some test code that does what you want (extract the attachment, compress it, re-construct a properly formatted message). Then work up to more complicated schemes like the one you show here.