Unable to obtain steady state

pi      = p(+1)/p;            //(21)

usually implies that there is a unit root in the price level. That in turn implies that there are infinitely many steady state and you cannot let Dynare compute them endogenously.