I don't know if his medical issues make things different, but I would be inclined to stay pretty firm on mealtimes, let him have healthy snacks as you see fit and sit tight and wait for it to pass.
I try to do this at home. It is very hard with all the screaming and screaming. But overall, at home I am much more strict. It is quite difficult when we are out. At the beach, a birthday party, someone else's house. Of course, it being summer, we are doing these things more often. He sees other people eating food and wants it, tries it, spits it. Ends up those days he doesn't eat much OR he finds a way to get junk, either from grabbing off of tables or what other kids have abandoned. It's much harder with him being quite a mobile little climber!!!
In regard to his growth curve. Yes, he's fallen a few times. I wasn't too concerned about the first drop. I used the babycenter.com percentile calculator but he went from somewhere in the 50-75% at birth down to the 25-50% range around 1 month. That seemed normal to me. Then he dropped again to 10-25% range around 4 months. Again, probably no big deal. But then he dropped at 12 months down to the 5-10% range. I'm not sure exactly, but I am also concerned his height is dropping off as well. I have to look into that as I don't have the most current lengths listed and will have to get a copy of his whole growth chart from the pediatrician.
I found a site that plots your baby's growth chart and did one for both DD and DS. They were born at a similar birth weight in that DD was 8 lb. 15 oz. but born on her due date and DS at 8 lb. 7 oz. born at 39 weeks. DD did drop off her curve but nearer to that 9 month-12 month range when she started walking.