Does the light switch feel any different than the fan switch? The switch can feel funny if it fails.
Also, what kind of fixture it is? It's probably not relevant, but it's not a bad detail to add.
OK, looking at your diagram, I'm happy to see that all the gnd and all the neutral are tied together. That really helps, as it means you don't have anything too weird going on.
I'm going to describe what I see in that diagram, so that we're on the same page (or so that you know I have no clue).
From what you've drawn, I assume that the wire going to the light fixture is the one on the left, the fan is the one on the right.
One of the center 3 lines goes back to the breaker. The other two of the center three lines are actually branches that feed something else (basically, they are chained off of here). That big bundle of 4 wires on the one leg of the light switch are just a way to get everything tied together without a separate wire nut.
At this point, as long as all connections to the switch are good, and you think the fixture is good, then I'd say it would have to be the switch itself - they are mechanical, and they do go bad over time. If you have a multi-meter, or some kind of circuit tester, then you should be able to check the power at screws of the fan switch - the one coming from the light switch will be hot all the time, the other side will only be hot when turned on. Then try the light switch - I bet it's not actually working correctly.
If you don't have a tester, just replace the light switch. They don't cost much, and then you'll know for sure.