This might take a bit... I might use it as the basis for my next big thing. If I can pull of my plans, it will be one of the most dramatic things I've ever made in Stencyl (and I've done some pretty insane stuff). It will take a long time to make though.
For now, just the idea of using a key to open a door is not that bad alone. The basic idea is to make a game attribute that is defaulted to some "off" value. When you pick up the key, set that game attribute to its "on" value. Then, when you collide with the door, see if the game attribute is in it's "on" value (if so, switch scenes, if not then do nothing or message to find the key).
I didn't say to just use a boolean in case you are planning on using multiple keys for a single door. In that case, you could set the game attribute to 0 when the scene is created (to keep reusing the same game attribute over many scenes) and set it to itself + 1 each time you get a key. Then, for the door, you just have to check that the number equals the number of keys in the scene.
Make sense?