I can't think of a circumstance where the chain spontaneously drops off the big chainring to the small except when the chainring is worn, the chain is sloppy side to side and you're in a gear that makes quite a chainline. Say 53-28/25/22. The big ring teeth are no longer tall enough to hold the chain on the teeth against the angle that is pulling it towards the little ring (especially happens if you do half a pedal backwards when shifting your weight cornering/descending).
I don't know your yearly mileage, conditions or maintenance but three years is a long time for a set of rings to last for anyone in my opinion. I'd replace the chainrings and the chain. Given the likely worn chain is not skipping on the cassette, I'd say the cassette is shot too. Again, three years on a cassette is a long time.
Your chains aren't lasting very long now because your putting them on worn chainrings and cassette. You get away with it a few times but now it's just not working. A new chain only will probably remedy the issue for a short period because it will be stiffer laterally. But it will wear quickly.
My vote is to replace your chainrings, chain and cassette. And given the chain has dropped onto the bottom bracket a few times it sounds like your limit screw and chain catcher position need a tweek.
I totally agree here!! I've recently began to have similar issues on some occasions, but it happens only when in the big ring and with cross chain with the third last cog (I don't go higher when in the big ring). And yes, the chainrings have 25.000 km's and the chain is due for replacement also. Never had drops in the past, even when the chain was due for replacement. So, my vote also goes toward changing chain AND chainrings (and cassette if it has already seen a couple of chains)