Hi Juan,
Thanks for the note! Glad to hear you've found the packages easy to use so far.
The concepts of convergence and GoF testing are two separate concepts. Convergence assess whether the Bayesian MCMC algorithm gets to a point where you can reliably interpret the parameters and feel confident that the algorithm is working properly. GoF assesses whether or not your model is a good representation of the data at hand. It is not uncommon to have a converged model with a bad Bayesian p-value, or a model that has a good Bayesian p-value that hasn't converged.
Your thought of adding covariates to the model that you think will influence abundance/detection probability is definitely the right idea to improve the model fit. A low Bayesian p-value indicates that there is more dispersion in the data than what the model is predicting. Your intuition is certainly correct that this problem can often arise when there is zero-inflation in the data, or when there is unexplained spatial variation in abundance and/or detection probability that the model is not currently accounting for. Unfortunately, there is not currently a zero-inflated Poisson distribution to fit in spAbundance (it's on my todo list to eventually add in). However, the package does support a Negative Binomial distribution (set family = 'NB') in the model, which could potentially soak up some of that variation that is not being explained. Alternatively, you could explore fitting a spatial model with spDS(). This fits the same model as DS(), but now also attempts to account for spatial autocorrelation with a spatial random effect. If there is spatial structure in the additional variation in the data that your current model is not accounting for, this could help improve the model fit. So, I would suggest you first try out using the Negative Binomial distribution, and if that doesn't help explore fitting a spatial model with spDS().
In addition to trying those two things, it could be useful to dig more into
the results of the posterior predictive check by making some visualizations of the results from ppcAbund(). Check out
this section in the intro spOccupancy vignette which shows how to make some plots from the resulting model objects from a single-species occupancy model. Although that is for an occupancy model, the exact same code should work for the distance sampling model (except you use ppcAbund instead of ppcOcc).
Hope that helps!
Jeff