Eu estava tendo o mesmo problema. e depois de cavar descobriu que firewalld tem passagem direta para o iptables
então, você pode usar as mesmas regras de encaminhamento que você tinha no seu script, mas deixar o firewall configurá-las permanentemente
firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -i bridge0 -j ACCEPT
firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -o bridge0 -j ACCEPT
firewall-cmd --reload
Eu gostaria que houvesse uma maneira de obter o mesmo resultado com o firewalld sem alterar diretamente o iptables, mas não consegui encontrar nenhuma solução melhor