based on the tests, we can rule-out any firewall-issues: Packets are travelling correctly through the tunnel.
You are running on an OpenVZ server. Sometimes this has issues for openvpn as you cannot create the tun-device. But this is not the issue here as you can start the server and succesfully transfer packets through it.
I think we need to dive deeper into the packets travelling to and from the server.
Can you run
tcpdump -n -w tundump.pcap -i tun0 not port 22
and ping some internet-ip, like 8.8.8.8 from a connected vpn-client?
And, to check output in the external interface
tcpdump -n -w ethdump.pcap -i venet0 not port 22
and, again, ping some internet-ip from a connected vpn-client?
* not port 22 is to exclude your own ssh-traffic. If you run ssh on a different port, change 22 to the correct port
Analyzing the 2 pcap-files can reveal info about the packets going out and in and eventually if the NAT works correctly.