Pymc3 changepoint model

Are fcast, pstar, and N_t_T observations?
If so, you dont need to index your observation, as

           N_t_inf[i] ~ dnorm(fcast[i],tau[i])
           N_t_T[i] ~ dbinom(pstar[i],round(N_t_inf[i]))

All contains [i], which means you can just treat them as vectors, something like:

with pm.Model() as m:
    invTau1 = pm.Gamma('invTau1', 100, 1)
    tau1 = 1/invTau1
    invTau2 = pm.Gamma('invTau2', 1, 1)
    tau2 = 1/invTau2
    cp = pm.Uniform('cp', 1, N)
    tau = tt.switch(tt.lt(tt.arange(1, N), cp), tau1, tau2)
    N_t_inf =pm.Normal('N_t_inf', fcast, tau)
    N_t_T = pm.Binominal('N_t_T', p=pstar, n=tt.round(N_t_inf), observed=...)

Do be careful of the parameter tho, for example I am not sure JAGS defines Normal with tau or sd.