Oh, you already tried OnCellAttach? It should work but if you already tested it then maybe not. I have something else for you to try, but one that requires more work, can you PM me so I don't forget to write about it?
Yeah, I tested both with my own clean script. Neither one works until I force the cell to reload by leaving the area and purging the cell buffer. I still don't understand how a cell can be already loaded when you first start up a savegame.
My working theory, and feel free to laugh at this because it's a layman's theory with no understanding of Papyrus... is that it's not working because my savegame is inside the cell with the scripted apples. I haven't tried it, but perhaps if I walk a few cells away and save, then come back, the OnCellAttach might fire. That being said, even if it does, it's not really feasible to tell people "just don't save in the same cell with an apple tree" (which I've stuck all over half the map, in cities, outside of cities, near farms, in the wilds, etc) "because if you do even one time, when you load that game every apple on the tree will suddenly plummet and you won't have anymore apples until the cell resets, have a nice day"
I may have managed to fix it, though -- I tried using OnInit rather than OnLoad or OnCellAttach. It does work, but I'm not sure what that... command? function? Papyrus calls it an event... well, I'm not sure what exactly OnInit does, or whether it may cause unexpected results down the road.
I only need this script to do its thing one time, not every time the player enters the cell, not even every time they load a savegame. It just has to run one damn time on each apple it's attached to, which will pop all the apples into their "glued on" mode, and they'll stay that way until the player pokes at them. OnInit seems to work, and if it fires off every time a savegame loads, so be it. I can live with that as long as it won't cause substantial slowdowns or any other unfortunate behavior.