Have you looked at snapcast? It’s one of the tools I’m going to evaluate for a similar use case. I’m not sure if it works with Plex OOTB but it the docs say it supports UPnP. Snapcast is actively maintained so you can just create an issue on github and see how they reply.
Little Seizures is my second favorite pizza place after Delicious Aneurysm.