In your model you have a latent discrete variable, which is why sampling needs a BinaryGibbsMetropolis. In general, discrete latent variable are very difficult to inference, the general recommendation is that to treat it as a mixture model problem and rewrite it into a marginalized mixture model.
I think this post is the closest to your problem that you can start with:
See also:
It provides a way to marginalizing the latent discrete variables.