Finalmente descobri o meu problema. Não tinha nada a ver com o OpenVPN em si, e não foi possível resolver dadas as informações acima. No caso de alguém se deparar com isso, acabou sendo assim:
Meu servidor OpenVPN está conectado a duas redes diferentes e executa duas instâncias diferentes do OpenVPN - uma ouvindo em uma interface e a outra ouvindo na outra interface. Uma das interfaces está no meu diagrama (192.168.5.10), enquanto a outra não está - vamos chamá-la 192.168.4.10.
Para fazer isso funcionar, eu tenho regras de roteamento com base em política que dizem "se os pacotes têm um IP de origem 192.168.5.10, enviam para o roteador 192.168.5.1" e "se os pacotes tiverem um IP de origem 192.168.4.10, enviar para o roteador 192.168.4.1 ". Isso significa que quando as conexões OpenVPN estão sendo estabelecidas, elas funcionam corretamente.
O problema é que quando eu ping 192.168.5.10 de dentro do túnel, os pacotes de retorno atingem a mesma regra PBR e são enviados para 192.168.5.1 em vez de voltarem para o túnel. Uma alteração nas minhas regras PBR corrigiu isso.