EDIT: Sorry in advance for this long post, but it’s worth reading as it could save you from a lot of headaches / weird unexpected stuff happening later…
Glad you’re having some success.
Personally I’d still uninstall ZHA, because you don’t need it. You either use ZHA or Zigbee2MQTT, unless you have 2 separate zigbee coordinators giving you 2 separate zigbee networks.
Based on the situation I had (which yours seems very similar) every time I booted home assistant, ZHA and Z2M would have a race to see who got to the coordinator first and then start doing “zigbee stuff”, build their list of devices and and tell the rest of home assistant about it.
So now you have 2 separate conflicting lists of “zigbee stuff” that home assistant has been fed depending on who won the race at start up to get to the coordinator first.
A lot will be the same entities from both, but I’m guessing there will be some weird things floating around in home assistant that shouldn’t be there. These will cause weird issues later.
All you have done by disabling the auto discovery is stop ZHA from getting to the coordinator and making more of a mess, but there will still be some left over entitys /attributes of entities that ZHA made, home assistant knows about and Z2M can’t control.
Uninstalling ZHA will remove all that stuff, but will leave the stuff that Z2M knows about. (99% should be fine, that why I say do a backup first)
ACTUAL EXAMPLE:
One of my zigbee sensors discovered by both ZHA and Z2M had an extra attribute when ZHA discovered it.
For some reason ZHA added an entity to home assistant for the little blue status LED on it. Z2M couldn’t see/control that entity.
Google assistant automatically discovered that entity in home assistant and decided it must be a “light”
So when I was going to bed at night and I say “hey google, turn off all the lights” google assistant starts replying “turning off 37 things . Sorry one of your devices is not available. You might try setting it up again in the Google home app”
… That’s really relaxing to hear when you’re trying to wind down and go to sleep
If you think of your zigbee network as an aeroplane, ZHA and Z2M are pilots, and homeassistant is the control tower. By preventing ZHA from seeing the coordinator but not uninstalling it, you now have an aeroplane with two pilots in the same cockpit, both talking to the control tower at the same time saying slightly different things, only the ZHA pilot isn’t allowed to touch any of the controls.
Not the optimal situation, the control tower is getting a headache and starting to get pissed off, probably going to cause an accident sooner or later