Your English is quite good.
I think you can get around this by setting up a traffic classification rule so that all DNS traffic uses one of your dynamic links. Let the client always update OpenDNS for that one link.
General HTTP, mail, etc. traffic can be load balanced as usual.
One down side will be that if that link fails you will have to move all your DNS setup to another link to restore your Internet service.
By the way, I was unfamiliar with OpenDNS so I did a web search to find out what you were referring to. A number of the hits I got were posts by teenagers trying to figure out how to get around OpenDNS blocking their parents had set up. Typically the response was to set a new DNS server IP address on their individual computer. If you are worried about that, and if you are using OpenDNS I suppose you are, then you might go a bit farther and setup blocking rules in Zeroshell so no DNS request from your LAN can be made to servers other than either OpenDNS or Zeroshell.
I haven’t done this type of thing in the Zeroshell GUI but know it can be done via iptables commands through the command line. Probably possible in the GUI but you’ll have to research it.
The next thing they can do is use a web browser to access a DNS lookup web site and find the IP address for the server(s) you have blocked through OpenDNS. They can then use the IP adddress directly to access the site(s). On a case by case basis you can block those by blocking IP address ranges in Zeroshell.
Best of luck. Personally I’d rather not have to be playing spy/counter spy with my family.