Imagine you have a model for a linear regression
y = a*x + b
where y are observed, x are independent variables. You setup some priors for a and b and want to determine whether if these are reasonable to start with. You may either want them to be reasonable for the given x, or you may want them to be reasonable for all possible x within some range. So if you know that in reality x can come from anywhere between say [-b ,b] you also regenerate x (instead of using the given x) and then sample from your model using the generated x and priors for a and b. Extending the range of x from what is observed would probably be more crucial for generalized linear regression. There it may quite be possible that the priors you set for your parameters may produce linear predictors which are fine for your link function but that as soon as you extend the range of your x, your start getting linear predictors that make the link function blow-up. This could mean that your priors, the range of x you have set or your link function aren’t realistic.
That being said I think by using set_data (see link below), you can perhaps do prior sample prediction without having to rewrite your model:
So you write a function that returns the model where x is stored with pm.Data and then you use pm.set_data to change x and do sample_prior_predictive. Perhaps try it on the simpler linear regression model in the links above first to understand how it works, before trying it on a more complicated model like yours.
ps: I just saw one of your latter replies, you do in fact seem to be going in this direction. If you are not acquaintanted with setting data etc, perhaps first try it on a simpler toy linear regression model from the links above.