Me and @stemangiola eventually ended up using a different reparametrization of the sigmoid for a very similar use case (there is a paper in final stages of preparation including that):

in this parametrization, y_0 = f(0) and \beta = \frac{4D}{A} is “slope” parameter. Those parameters are in our experience mostly well identified. Note that, we centered and scaled x before fitting the model, so y_0 is the value at the midpoint of data, which tends to be well constrained by the data (if you want to avoid centering, then use “value at midpoint” as a parameter). Another important point is that your prior should constrain M to not be far from the observed range of x, as once the midpoint drifts far from the data, your inferences become insensitive to changes to M. If your model then fits M outside of the observed range of x, you should interpret it as “midpoint not reached by the data” and avoid stating any conclusions about the actual value of M (in this case, exact D is also not determined and exact A can only be determined if M \ll x)

Finally, when x is scaled and centered, you can put very sensible priors on \beta - you just need to let it go large enough to allow for almost instantaneous changes \beta \sim N(0,5) has worked quite nice for me.

*Note: please check/re-derive my formulas before using them in a model, I have done silly mistakes in posts here in the past.*

Also I would totally recommend to first write a model that fits a single curve (from simulated data), debug it really well and incorporate it into a bigger model once you understand it over and out.