CAN filtering: Error in reasoning?

Well, off hand I'm not really sure. It certainly should be dropping that frame 0x82 because it doesn't match. 82 AND 7EC does not equal 8C. So, my guess is that the mailbox is in standard ID mode and you didn't use the proper macro to place the standard mask into the register. Do you see how you did use the macro for the ID:
CAN_MID_MIDvA(0x08C);

Try this:
can1_mailbox.ul_id_msk = CAN_MAM_MIDvA(0x7EC);

I know its a pain but you have to use the macros if you use standard ids because they've got to be offset in the register. Extended IDs do now have this problem but you've got to set a bit to indicate extended frames.