First of all, the correct way of concatenating the arrays would be:
my @persons = (@senders, @recipients);
I don't know the module Mail::Box::Manager a lot, but it seems to be using mbox files for managing the mail. This requires that the entire mbox file to be read and parsed to search the emails, and then writing an enormous mbox file again.
I'd like to suggest you to change from mbox to maildir, so your script won't have to parse a giant file, which is probably the reason for the memory eating...