I so feel your pain... our Lily (who is almost three) is a midnight snacker and will sneak downstairs and leave a log for us in the morning
We take her food away at night then when she wakes up in the morning she is hungry and eats. Now Lily is also not underweight, and it took her some time to get used to this.
I know you are worried, what does your vet say. Does he have any underlying medical issues? If not then I would let him go hungry at night and maybe leave the food out all day for him to pick at. Yorkies are notorious for grazing their food all day. You may want to talk to your vet about switching food?
Good luck!