KillerBob, your approach with the Armos secrets is fine. The code simply does three checks to determine if a secret is revealed. First, it tries to match one of the locations in the table at 10CB2. If a match exists, then with the same index, it checks if the Armos has the same X position in the table at 10CB9. And then, it checks if the Armos has Y position 80 (this is fixed)...
So if you change the X position for that specific screen, and you make sure there's no Armos at the new X position, the conditions never meet, so the secret is effectively cancelled...
On the 1st Quest, no ghosts comes out of the grave where you get a Heart Container on the 2nd Quest. Similarly on the 2nd quest, no ghosts comes out of the grave where you get the Magical Sword in the 1st Quest. Might confuse a first-time player but is most likely a limitation of the two quest setup.
It's in the nature of the game engine itself. A tile cannot be touch-sensitive to ghosts and pushable at the same time. The columns are the same in both quests, so the tile attributes are also the same...
As for the locked door bug in level 1, the debugger could help pinpoint the exact place in code where the data is being modified. The only problem is, I don't know exactly the location of the data that keeps track of each room's state...