OpenVPN не работает по TCP?
Как минимум нужно увидеть, что openvpn пишет в журнал на счет ошибки: /var/log/openvpn/openvpn.log
По вашему описанию нет возможности это узнать.

Нет никакой своей версии TCP. На сервере openvpn выставляете tcp-server, на клиенте tcp-client. Хотя должно работать и просто tcp в обоих случаях. Когда я последний раз настраивал TCP для openvpn, указывал просто tcp и все работало. Так же можно использовать tcp4 или tcp6, если нужно работать только с конкретной версией протокола. Аналогично и для udp.
Почему вы используете интерфейс tap, вместо tun? Есть какие-то причины? Обычно используют tun.
proto tcp должно хватить, как уже ответили выше. Вероятно, что Вашим файрволом разрешены подключения к порту OpenVPN только по протоколу UDP. Убедитесь сначала, что соединение с портом вообще происходит. Это можно сделать при помощи telnet, например так: 
telnet  имя_сервера порт_сервера