Effectivement, ça ne peut pas marcher avec cette config :
modify balance_data {
        rule 10 {
            action modify
            description "do NOT load balance lan to lan"
            modify {
                table main
            }
        }Là, tu indiques que ce qui passe par le groupe de load-balancing "balance_data" doit être envoyé à la table de routage principale. Une fois ça lu, le firewall s'arrête et donc ce qui suit n'est pas exécuté.
Note que la règle 100 est identique ! Il manque une destination dans ces deux règles pour que ce soit fonctionnel 

modify balance {
        rule 10 {
            action modify
            description "do NOT load balance lan to lan"
            destination {
                group {
                    network-group PRIVATE_NETS
                }
            }
            modify {
                table main
            }
        }
        rule 100 {
            action modify
            description "do NOT load balance destination public address"
            destination {
                group {
                    address-group ADDRv4_eth8
                }
            }
            modify {
                table main
            }
        }
        rule 110 {
            action modify
            description "do NOT load balance destination public address"
            destination {
                group {
                    address-group ADDRv4_eth9
                }
            }
            modify {
                table main
            }
        }
    }
    modify balance_data {
        rule 10 {
            action modify
            description "do NOT load balance lan to lan"
            modify {
                table main
            }
        }
        rule 100 {
            action modify
            description "do NOT load balance destination public address"
            modify {
                table main
            }
        }
        rule 110 {
            action modify
            description "do NOT load balance destination public address"
            modify {
                lb-group LB_Data
            }
        }
    }
Je ne comprends pas l'intérêt de cette règle qui, affectée à switch0, ne fait au final rien du tout à part tout rediriger vers la table de routage main, ce qui déjà le cas par défaut ? Un reste de copier/coller du tuto Ubiquiti lors d'un précédent test ?
Niveau table de routage :
protocols {
    static {
        route 0.0.0.0/0 {
            next-hop 192.168.10.254 {
                distance 1
            }
            next-hop 192.168.151.250 {
                distance 2
            }
        }
    }
}
Les deux routes étant déclarées statiques, le hop 192.168.151.250 ne sera jamais déclenché, même sans connectivité.
Du coup, j'effacerai tes groupes de load-balancing et tes routes statiques pour les remplacer comme suit (non testé, je tape ça comme ça me vient à l'esprit) :
# On met la route par défaut de tout ce qui ne sera pas balancé dans la table main
set protocols static route 0.0.0.0/0 next-hop 192.168.10.254
set firewall modify balance_data rule 10 description "On ne balance pas les adresses privées"
set firewall modify balance_data rule 10 action modify
set firewall modify balance_data rule 10 destination group network-group PRIVATE_NETS
set firewall modify balance_data rule 10 modify table main
# Inutile de mettre des règles concernant les IP de eth8 et eth9, elles sont dans le range 192.168.0.0/16, donc dans PRIVATE_NETS
set firewall modify balance_data rule 100 action modify
set firewall modify balance_data rule 100 modify lb-group LB_Data
# On active le load-balancing Data sur eth3
set interfaces ethernet eth3 firewall in modify balance_data
set firewall modify balance_voix rule 10 description "On ne balance pas les adresses privées"
set firewall modify balance_voix rule 10 action modify
set firewall modify balance_voix rule 10 destination group network-group PRIVATE_NETS
set firewall modify balance_voix rule 10 modify table main
# Inutile de mettre des règles concernant les IP de eth8 et eth9, elles sont dans le range 192.168.0.0/16, donc dans PRIVATE_NETS
set firewall modify balance_voix rule 100 action modify
set firewall modify balance_voix rule 100 modify lb-group LB_Data
# On active le load-balancing Voix sur eth4
set interfaces ethernet eth4 firewall in modify balance_voix
commit
save
Et une fois sorti du mode de configuration, vérifier les routes comme suit :
# On liste les tables créées par le système de load-balancing. Elles ont un nom > 200
ip route show table all | grep -Po 'table \K[^\s]+' | sort -u
# Puis on affiche les routes une à une
show ip route table [Le numéro ici]