Instead of calling cdf 6 separate times, you can try to use pt.vectorize and index the batched vector afterwards.
However the slowdown may not be in the model logp being heavy but in it being poorly identified. How do the traces look like after sampling is done? If very jittery that means the sampler is probably struggling and making the logp faster would not necessarily be the thing to focus on