A work around would be to have the first address in the list be one you don't mind showing up in the headers.
As for what is causing this problem... I'm sorry but I don't know.
I usually do something like:
open(MAIL, "|/usr/lib/sendmail -oi -t") || die "Can't open sendmail: $
print MAIL <<MESSAGE;
Bcc: $bcc1, $bcc2
This is an automagically generated message, please do NOT reply to it.
print MAIL "More text goes here";
EDIT: you could use a foreach loop to add enough Bcc: addresses.