My app broadcast a status command which includes the ID of the system I want to control.
Does the response packet also include that same ID?
it either tries to send to fast between each ID or it does have enough time to get a response before sending the next status command.
Sounds like the universe is telling you to slow down. How quickly does a response usually come back? eg a few milliseconds, or a few hundred milliseconds, or more than a second?
A simple polling method is: when you receive a response, then send the next status command and set a timeout timer of duration say twice as long as the usual response time.
In fact, it might work better to have the timer tick handler send the next status command. If you want to send a status command earlier (because eg you just received the previous device's response), just reset the timer period to a small value eg 2 ms, and then the timer will trigger shortly after and send the next status command.
Also, does the BCD switch mention mean that you have at most 10 devices to monitor?
How often do the devices need to be monitored? Every 10 seconds? Once a second? Ten times a second?