Nice to know it’s working on a TUN interface. But you’re running OpenVPN server on the same server that is running Roon correct? If that’s the case, then I think that’s why a TUN interface is working for you (because you’re on the same box as the Roon server technically)
I’ve also got it working over my cell phone and I have an unlimited data plan so it tends to work fairly well. I have a modest vacation place (cabin) and it’s only got 128K DSL and this won’t work over a link that slow. So as long as you have a fairly good link it works well.
I suppose doing a lot more caching on the client side would help with the slow connection but there’s no control of that which I’m aware.
I’d also recommend going on the DB/Server side and setting the client’s DSP settings under Sample Rate Conversion and setting it to custom. Make sure everything is 44.1Khz (Unless you have a super fast Internet at both ends then go ahead and stream 24bit or DSD if you think you can do it). But I’ve tried DSD over a neighbors 75 Mbps connection and it didn’t work very well (I have FIOS Gigabit Internet) YMMV. Here’s a screenshot of what I’m talking about.