Stephen,
About distinguishing the Arduinos. Are you using /lib/udev/rules.d/99-observatory.rules?
Example to distinguish between 2 nanos, you can then refer to them like /dev/flpFlat instead of /dev/ttyACM0.
Here 2 Arduino nanos from the same product supplier:

# DeepskyDad FP1 Flat light panel, Arduino Nano
#SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0058", ATTRS{serial}=="D204FE65515146544E4B2020FF0C1723", MODE="0666", SYMLINK+="flipFlat"

# DeepskyDad AF3 Focuser Arduino Nano
#SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0058", ATTRS{serial}=="60E1ECB651514746304B2020FF0C324F", MODE="0666", SYMLINK+="focuser"

For the roof I have an entry like:
# Arduino Uno Rolloffino Roof controller roofCtrl. Arduino SA - Arduino Uno.
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", MODE="0666", SYMLINK+="roofCtrl"
and refer to it in INDI as /dev/roofCtrl Did not need the serial ID since it is the only Arduino uno

The rolloffino roof driver doesn't need building anymore since it is now included with the released product.

/Tom

Read More...