Firstly, BMI only really works for people of otherwise average height and musculature. A bodybuilder could be seen as obese for example. So just fixing for that would help.
But more importantly, and perhaps unpopularly, I think people have gotten too used to feeling full all the time, and that the slightest feeling of hunger signals red alert. I see people constantly grazing throughout the day the moment they get even slightly hungry, sometimes without evening noticing it themselves, then they'll still eat big meals for breakfast, lunch, and dinner.
Unless you're regularly getting a good amount of exercise from work or your personal lifestyle, then of course you're gonna put on weight cause those calories have got nowhere to go. Now while there are other factors that can tip the scales into or out of your favour, ultimately:
Daily Energy Input < Energy Output = Weight Loss
Now some will say they can't not eat, because they can't concentrate otherwise, it gives them the shakes, or something else. But for 99% of people, that "need" is all psychological, and can be shaken off with time and patience.
I would know, cause I experienced this when I was younger changing my diet to help lose weight. Being purposefully intermittent about eating will suck at first as your body and mind adjust to the new status quo, but stick with it and your body and mind will be healthier for it.
((Just to be clear, I'm not promoting any kind of eating disorder or crash dieting. Losing weight sustainably is about small changes that you take with you into the future, not making huge changes that make you sick/depressed, or throwing your body around like a metabolic ragdoll. But I do mean it when I say putting more planning and restraint into when and what you eat will do you a world of wonder))