Ok, I’ve skipped to the end without reading all of the above so apologies if this has been said.
We have the same issue with our eldest who is very nearly 5. We found that a combination of putting 1 of the thing we want her to try on the plate with some other food and gradually building up to tasting it then chewing and eating it over the course of days of weeks seems to make progress.
We also cut out crisps, chocolate, and sweets entirely Monday to Friday (I’m sure the MiL is still giving them to her on the sly) but on days when we are around and she has no “rubbish” she is a lot keener to try things.
Its small victories and progress you are after here, your not going to do one magic thing and 5 minutes later they are eating a 3 bean salad.
Also, know when to give up and appreciate that today might not be the day, or they might actually genuinely not like certain things.
Ours fights a bit, then when we leave her alone and she thinks we are not looking she will sneakily eat a bit of whatever it is as if to not lose face by doing it in front of us.
Stick with it