If I choose scenario = 1, then there seems to be no mistake.
min(irate_p) = -3.588068554181867e-04 and hence there is no violation of the ZLB (which is attained at 1-Rss =-0.017415534656914). Obtaining the exact same IRFs is correct in this case.
But I should note that the overall implementation looks strange to me.
Why do you set an initval-block and compute steady states if you have the (linear) option set in the model block?