It's hard at 5 to get them to eat decent food. By then they've tried chocolate, ice-cream, crisps, chips, burgers etc.
It's a dance you have to do to try and get them to eat the healthy protein first and then the fruit or yogurt afterwards.
if you are a grazer then that can mean also, your DS may not be properly hungry as he's constantly snacking.
That also might not help you if you're iron deficient as iron has to be taken on an empty stomach. I always take any iron first thing in the morning and wait 45 mins before eating or drinking anything else.
I'd suggest you'd both benefit from a multi-vitamin to support you long-term with nutrients.
For lunches and dinners, a cheese sandwich (if possibly with brown bread) or ham is fine.
For dinner if you can try and get a little more protein in, even if it's chicken nuggets, that's fine.
Then some fruit, like chopped up apple and banana. To get a few more vitamins.
If you could get just those basic things then you're doing fine OP.
Kids are fussy sometimes at that age. Sometimes all the time. I know, I had a fussy DS.
I'd try to model 3 meals, plus 2 small snacks to him - or possibly no snacks for you, if possible. It might help your overall mood too. Your BS never comes down if you're constantly grazing. And your stomach never gets to empty properly meaning there's no chance for autophagy, which is when cells die off that shouldn't be there. If you're not giving your stomach a rest it's on the go constantly and may not absorb things so well. Allow it to empty, get hungry, eat well and repeat.
No high sugar stuff like coke etc. That definitely makes you swing up and down in terms of mood as your blood sugar swings up and down so much. I'd also say no fruit juices either. Just fruit. Again blood sugar swinging up and down, not good for sustained energy, not good for sugar crashes.
Good luck OP. 5 is hard. It does get easier as they get older.