Ich hatte mal ein ganz ähnliches Problem mit schwankendem Durchsatz über Wireguard. Bei mir war’s am Ende die MTU. Ich hab mit ping -M do -s rumgetestet, bis ich die größte Paketgröße ohne Fragmentierung gefunden hab, und dann die MTU in der Wireguard-Config entsprechend angepasst auf beiden Seiten. Seitdem läuft’s stabil.
Falls du das schon probiert hast, check mal auch die Congestion Control auf dem Server. bbr hat bei mir nochmal einen Schub gebracht im Vergleich zu cubic.