If he hasn't lost weight, then there is probably some other reason for his tiredness. Some of us are just thin no matter what we eat - I'm the same
Tiredness can be caused by so many things including psychological things such as stress, boredom or depression
My take on it would be to make sure that what he DOES eat is healthy. you mention 'packed lunch' and 'dinner' but you don't actually say what, or how much, he is eating….............
it sounds like he might be happy for you to take over making his packed lunch, so what about guacamole or humous - both high in good fats and nutrients with pitta bread or oatcakes (filling and substantial) alongsisde some dried fruit with yogurt and honey and some seeds or nuts? Lentils are filling - does he like dahl? You can make it up, let it go cold and then spread on crackers.
eating to put on weight is really hard.
How long has he had less meat - is he anemic? being veggie isn't for everyone, so you might need to look at increasing meat in his diet. He could also have a couple of smoothies throughout the day and you could add some flax seed or green powder to it. He might be low in zinc too - get him to eat a handful of pumpkin seeds each day.
if he continues to be tired, then you might need to encourage him to have some blood tests or take him to a kinesiologist or nutritionist for some professional advice. But rule out psychological factors first