L.H.
You have to keep introducing foods over & over & over again- the same things that he refuses now, he will suprise you out of the blue one day & actually try/like what you offer!!!
I would make muffins and 'hide' things in them- you can make carrot muffins & put babyfood purees into them
same for waffles- make your own and put babyfood into them
you say he like bread- what about grilled cheese? french toast (egg is good protein)?
have you tried beans? straight out of the can or refried/pureed spread on bread?
next I would try taking the babyfood that he loves and mixing in a little rice- so it's the flavor he likes and then he can get used to the texture- just a few grains of rice to start!! then slowly slowly over time add more & more...