For hardware upgrades, see Purchase "upgrades" - #2 by amplipi
For airplay, having multiple airplay 2 streams is entirely doable on a 64 bit OS with shairport-sync, they would just need to be containerized as to not have the same IP. See the docs here. You’ve already had experience with this in your rewrite by the looks of it, though it seems that your issue might’ve been attempting to containerize every stream type.
In our codebase, something like this could be achieved by going to /amplipi/streams/airplay.py and implementing a containerization wrapper around the subprocess, in your rewrite I have no idea.