In the actual game, a treasure chest consists of two sprites, one on top of the other, for the treasure chest body and its lid. Both should have identical flag ID numbers. The lid is sprite number 21, and should call event on action (the event would be "empty" or the like), and be visible when flag ID is set. Also check flag 0x1000, though I am not sure what this does. The body of the chest should be sprite 15, calls event on action (the actual item-getting event), and is invisible if the flag is set.
The item-getting event should look something like the following, taken from the Map System chest in the Mimiga Village:
<PRI<FLJ0322:0201<FL+0322<SOU0022<CNP0200:0021:0000
<MSGOpened the chest.<NOD<GIT1002<IT+0002<EQ+0002<CLR
<CMU0010Got the =Map System=!<WAI0160<NOD<RMU<EVE0201
And the lid directly calls event 201:
#0201
<PRI<MSGSomething's written here...<NOD<CLR<TURSo long as you retain your spirit
of exploration, surely you shall
find your way out. This I believe.<NOD<END
Note the <FL+0322. The flag ID of these chests is 0322, so setting this flag will make the body disappear and the lid appear.
I was using the terms "body" and "lid" merely for positioning purposes. The body really refers to the whole unopened chest sprite, and the lid to the opened chest. Almost always the opened chest is found directly above the unopened one, hence "body" and "lid."
Your actual problem, though, probably involves accidentally calling the wrong event from inside your event (or actualling using <FAO and <FAI, in which case you should have expected the result =P)... For example, chests with missile expansions call event 0030, which is global, to reuse the if statement (whether or not to give the "you got the missile launcher!" speech).
If you called one of the events in the 90s, you might have caused fading. But aside from that, I can only tell you how to do it right, not what you are doing wrong.
Incidentally, I guessed my password.