I have seen in some instances that supplying chol instead of cov speeds up mvnormal sampling. And that seems to be the recommended usage:
https://www.pymc.io/projects/docs/en/stable/api/distributions/generated/pymc.MvNormal.html
Also have you tried NUTs instead of Metropolis? Finally you can also try numpyro: