My guess is that the older implementation use Joblib for multiprocessing, which sometimes creates pickling issue. This problem is recently addressed in PR #3011 thanks to @aseyboldt
Could you please try installing PyMC3 from master and run the code again? We will also do a release shortly.
Your code can clearly run, it just very inefficient. As you can read from the warning:
The chain contains only diverging samples. The model is probably misspecified.
This is a serious issue. My suggestion is to test a smaller model first, and also replace all the halfCauchy prior with HalfNormal