Multivariate imputation is usually quite complicated, as the missing value makes the logp evaluation difficult - For example if you have observed [a, b, x] ~ MvNormal(mu, cov) with x being the missing value, you need to derive the marginal distribution of [a, b] and the conditional of x |(a,b). So in this case, I dont think using Bound variable is the correct way to go, and the missing value in PyMC3 is not build to handle such cases.
A side note on how PyMC3 handles missing values: in short it create a new random variable where it’s distribution follows the correct conditional distribution.
However, it only works for iid cases where the missing values do not depend on other observation (again it is not the case here)
In your use case, what I would do is treat the censored value as none-censored, and then account for the censoring using pm.Potential.