Sampler (NUTS) proposes the same value

Seems to me the sampler is rejecting all proposal. You should not call the step directly, instead do trace = pm.sample() which use the auto initialization with multiple chain.

Also, are you sure the input to B1 is valid?