I’m almost certain when using the official proton VPN app that proton creates a “proton0” network interface, or something similar, instead of using tun0. So you would have to bind to that interface instead of tun0.
I can’t remember for definite, its been so long since I used the official app.
I’m not sure it explains your problem though since you’re bound to tun0 anyway.