Exactly, the problem here is that it is difficult (i am tempted to say impossible) to recover latent correlation from samples only, when correlation is not model as a parameter. Imagine trying to model correlated Gaussian with identity Gaussian as prior - you will not be able to recover the correlation:
with pm.Model() as m:
x = pm.Normal('x', 0., 100., shape=2)
pm.Normal('y', x, 1., observed=np.random.multivariate_normal(np.zeros(2), np.array([[1., .25],[.25, 2.]]), 1000))
trace = pm.sample()