JP,
how are you fragmenting the UDP message? Are you doing it or are you expecting the NDK stack to do it for you?
It's strange that a message can be sent before a MAC address is known. What APIs are you using to send the UDP message?
How were you able to determine your findings? Did you use Wireshark?