You could have your NameResolver do one of the following
1) Extend DnsNameResolver (as is done by the internal GrpcNameResolver) and override the doResolve method
2) Directly extend NameResolver and have a field with a DnsNameResolver created through the DnsNameResolverProvider (which should be gotten from the registry).
There is already a load balancer that is switching between 2 child load balancers. It is experimental and can be specified as "priority_experimental". What it does is to use a specific attribute that must be set by the NameResolver. Even if you go with your own load balancer, that would be the best way to differentiate which addresses should be used for which child. If you want to use it as an example, it is
https://github.com/grpc/grpc-java/blob/master/xds/src/main/java/io/grpc/xds/PriorityLoadBalancer.java