The distribution component = pm.Uniform.dist(lower=0, upper=0) seems odd. The code stands for a uniform distribution over the interval [0,0]. I am not sure how PyMC3 interprets this and this probably causes trouble. Mixing unbound distributions with bound distributions may also not be a good idea.
The following function might help you debug: mnl_model.check_test_point(). If the output shows some -np.inf your start point is too far from the support of the posterior.