My second son got some kind of bug when he was a year old and threw up for a few days. After that, he got really picky about what he would eat. I never really put the two together until we saw a developmentalist and after I told her how picky he was, she asked if he had been sick at all. A lightbulb went off and it occurred to me that the two were related. He was REALLY picky about textures....it had something to do with the sensory part of the food. He was so hard to feed and would eat NO fruits or vegetables. And other foods were hit or miss, sometimes he would eat them, sometimes not. Like noodles...most days he wouldn't touch them (or even look at them, seriously) and then other days, that's all he would eat.
Anyway, I kept offering the foods I wanted him to eat but I never forced it. If he ate them I would get excited and say "Good eating!" or "Good tasting!" But honestly, he rarely ever ate them. So we just kept doing that and giving him healthy foods we knew he would eat. My motto was (and still is) "He won't eat it if he never sees it." I just kept reminding myself that he would be fine and that as long as he was eating some nutritious food, he would get what he needed.
I hate to tell you this, but this problem has just recently (in the last month or so...over a year from when this all started) getting better. He just eventually started eating the foods that I always offered (it helped that his big brother will eat ANYTHING). And this week he actually asked for a pear! So it is better.
I think the example diet you gave looks good for a toddler. I would definitely talk to your pediatrician about his diet and lack of weight gain, though. Just to rule out something else going on.
GOOD LUCK! I know how frustrating this can be, but try not to to get too worked up because that will make meal time unpleasant for everyone and he certainly won't eat if he feels stressed or pressured.