How are you setting up the multiple local devices? Here is some sample code I've used before but not thoroughly vetted in terms of a device missing a message.
List<InterfaceAddress> usable = BacnetIpUtils.listUsableBACnetInterfaces();
Assume.assumeTrue(usable.size() > 0);
InterfaceAddress address = usable.get(0);
String bindAddress = address.getAddress().toString().split("/")[1];
String broadcastAddress = address.getBroadcast().toString().split("/")[1];
//Configure the first network, ensure we set reuse address
IpNetwork networkOne = new IpNetworkBuilder()
.withLocalBindAddress(bindAddress)
.withBroadcast(broadcastAddress, address.getNetworkPrefixLength())
.withLocalNetworkNumber(1).withPort(9000).withReuseAddress(true).build();
Transport transportOne = new DefaultTransport(networkOne);
LocalDevice localDeviceOne = new LocalDevice(1, transportOne);
IpNetwork networkTwo = new IpNetworkBuilder()
.withLocalBindAddress(bindAddress)
.withBroadcast(broadcastAddress, address.getNetworkPrefixLength())
.withLocalNetworkNumber(1).withPort(9000).withReuseAddress(true).build();
Transport transportTwo = new DefaultTransport(networkTwo);
LocalDevice localDeviceTwo = new LocalDevice(2, transportTwo);
localDeviceOne.initialize();
localDeviceTwo.initialize();