Bad initial energy: inf. The model might be misspecified

wow, you should probably rewrite it with a for-loop to create the 24 nodes.
As for the Bad initial energy problem, this is an indication that one of the computation returns invalid number (likely the likelihood contains nan or inf). You can check which RV is causing problem by doing:
model.check_test_point(). If you are not on master, the following code gives the same output:

for RV in model.basic_RVs:
    print(RV.name, RV.logp(model.test_point))
print(model.logp(model.test_point))