M3P problem ROS v3.20

Hello.
I can’t set up M3P, it produces data corruption and checksum errors when enabled for my setup!
I’m trying to set up the following scheme:

                                                       /--channel1--\
                                                      /---channel2---\
laptop-1->mtik_box1_host-2->mtik_box1_virtual[bonding]----channel3----mtik_box2_virtual[bonding]-3->mtik_box2_host-4->cisco65xx
                                                      \---channel4---/

each mtik box has a xen virtual child, which bonds 4 channels together and then represents them as only one for host machines via virtual interfaces 2 and 3 respectively. Hosts then forward traffic betwean their interfaces using static routing.
Interfaces №№2 and 3 have M3P enabled, with simple packing.
When I disable M3P, everything works ok. When I enable packing on box1 and unpacking on box2, it seems to work too. But when I enable packing on box2, or on both sides, I start to receive packets with corrupted data field on my laptop. Moreover, I can only ping box2 from box1, not box1 from box2. It seems like box1 can’t correctly deassemble packets…