Я наконец узнал, в чем проблема. Я использую опцию «маршрутизации» OpenVPN, которая создает новую подсеть для всех соединений OpenVPN. Моему клиенту был назначен IP-адрес из этой подсети, как и мой сервер, чтобы они могли общаться друг с другом через эту сеть. С включенной переадресацией IPv4 на моем сервере я также мог отправлять пакеты в свою локальную сеть и, очевидно, мог общаться с сервером через его IP-адрес в локальной сети.
Когда клиент пытался общаться с другими компьютерами в моей локальной сети, пакеты от моего клиента доходили до моих хостов локальной сети (я не проверял это, но я почти уверен, что они были), но адрес источника этих пакетов был адрес из сети OpenVPN. Хосты локальной сети знали, что это не было в их локальной сети, и единственное, что они знали, чтобы сделать в этом случае, было отправить их на шлюз по умолчанию, который был моим маршрутизатором. Я сомневаюсь, что с ними что-то произошло, поскольку отправка пакета на частный IP-диапазон в Интернет бессмысленна.
Решение состоит в том, чтобы добавить статический маршрут ко всем узлам локальной сети или использовать опцию OpenVPN «мост» вместо «маршрутизация». Я еще не сделал этого, но уверен, что это путь.