Take this model:
theta = pm.Normal("theta", mu=0, sigma=100, shape=(data_array.shape))
model_error = pm.ChiSquared("model_error", nu=5)
x = pm.Normal("x", mu=point_est_of_x, sigma=tt.sqrt(var_of_x))
y_mu = pm.math.dot(theta, data_array) + x
y = pm.Normal("y", mu=y_mu, sig=model_error)
You seem to be saying that var_of_x is estimated in this model, but it isn’t. Honestly, I think this model does what you want.