After playing with my WiiM Pros and Pro Plus and Roon for a while, I've finally figured out how to get them to sync.
First off, just don't ever play music through the WiiM app. It's garbage and never stays in sync. I only use my WiiM devices as Roon RAAT end-points. Well... and I use them as chromcast end-points for my smart home system (home assistant) to make announcements but never for music.
Second, the "sync" option is not really a sync at all. It is a delay to compensate for processing latency INSIDE the units. Each output mode (Optical (TOSLINK), RCA digital (SPDIF), and Line-Out all have different delays. If you've enabled any of the features like fades-in/out or room correction, that changes the delay and might also be affecting bit accuracy. I haven't tested it enough but know that having it all off makes Roon bit perfect. Btw, the "sampling rate latency" which showed up recently seems to be for handling latency in connected (outside) devices. I've left it all at 0 with my manual sync. If you change the length of any of your cables significantly or change any components in your signal path, you'll need to manually change this "sync" (delay) setting.
Process:
1. Don't use auto-sync, it doesn't work at all.
2. Play a test track that has something you can listen to for manually syncing. I made a track that has bass beats on each beat and claps on 1 and 3.
3. Start playing the track in Roon with the speakers you want grouped together in Roon. Never group speakers in WiiM.
4. Use the manual "sync" to adjust the delay forward and back for each device. Try and delay things as you can't really push much further forward then 20ms because the buffer is small (in my experience). If you have one device that is always really slow, delay all the other devices, rather than try and push the slow device forward.
5. Once you have things dialed in, save the values someplace in case they get set back to 0 during an update (found out the hard way)
6. Now when you play through Roon RAAT, it will automatically adjust for network latency, WiiM will be manually set to deal with hardware latency.
7. Things will now be in sync for long periods of time. If they become out of sync, just pause Roon, then start it again. I typically only have to do that if I've been continuously playing for longer than 8 hours these days.
Now that I've explained how I make it "work", you might be interested to know that I'm installing ceiling speakers wired back to a multi-channel amp with multiple inputs and input matrix ability. I've given up on multi-room using network technologies and going back to the tried and true hard wired speakers with a multi-channel amp. I've also started installing these systems for restaurants and bars again. It allows you to still play music to a room/area with Roon/PlexAmp/WiiM with a WiiM per room/area, but when you want to play multiple rooms, the matrix connects them together and plays from a single source (input). Software doesn't seem to beat hardware, ever. Maybe if someone makes a PoE powered RAAT end-point with a 50 watt amp built-in, I'd start putting those attached to ceiling mounted speakers and give it another go, but so far no one is making them and I don't have the time to build and market them unless there is about 1000 people that want a few units.