Без дампа захвата трафика и анализа ситуации могу только ткнуть пальцем в небо и предположить, полагая, что у вас корректно настроен NAT (MASQUERADE) из VPN-интерфейса на физический интерфейс, что от VPN-клиентов уходит трафик без подмены адреса (без NAT'а), если TCP-сессия уже была установлена с каким-либо хостом в момент соединения с VPN.
В этом случае, при типичной настройке iptables, правило MASQUERADE не будет выполняться (так как у пакетов состояние conntrack INVALID, а не NEW/ESTABLISHED), и пакеты будут маршрутизироваться без замены исходного адреса.
Решение:
iptables -I FORWARD -m conntrack --ctstate INVALID -j DROP
Аналогичная ситуация может происходить, если кто-то из клиентов генерирует пакеты TCP на низком уровне, без установки TCP-сессии. Например, единичный SYN/ACK-пакет, не принадлежащий какой-либо TCP-сессии, отправленный через VPN, не попадёт под действие NAT MASQUERADE-правила.