Try changing
g ~ Truncated.(Beta(1,1), 0, 1 .- s)
to
g ~ array_dist(Truncated(.Beta(1,1), 0, 1 .- s))
And see where it gets you. It’s also a little easier to debug this if you don’t use multithreading at the start – i.e. use sample(dina_model, MH(), 3000) just for debugging purposes.