Dropping 10% of packets sounds like a trivial problem to solve. That's not a range that requires fancy things like erasure coding or even SACK; it's easily handled by just retransmitting packets that don't get acknowledged.
If there's receive window timing issues you can't assume two nodes right next two each other will get the same subset of packets most of the time.
My solution is just to resend every message four times, and not bother with protocol layer reliability for BLE at all, the packet rate is low and all the acknowledgements use airtime anyway.