These devices don’t have any logic built in to store a unique ID.
The USB port management is something that is managed by your operating system. If different ports get a different address after reboot, this is expected behavior (the essence of what USB is). How you could tweak it, depends on your OS. You could try figuring out how to fix the names of your USB devices in your OS.
For example under Linux, you could use udev rules. Here’s an interesting discussion on the topic:
You could then walk through the attributes using something like
udevadm info –attribute-walk –path=/dev/ttyS0
(or whatever the ports are named)
… and see if something is different per device.
I think the easier solution might be to indeed go over UART and connect each of the devices to some small Arduino (compatible) device. If you use something like an RF Nano to communicate, they even become wireless (RF) with a range of tens of meters. https://www.anyonecanbuildrobots.com/po … he-rf-nano