Your battery could have a bad cell in it, could also be corrosion on the terminals or on the cable ends, possibly your battery cable ends are not able to tighten up as they should and should be replaced, that would be some of the reasons your battery light may be on. You may also have a belt tensioning issue for the alternator, or maybe a defective alternator.
These will all contribute to a bad charging or electrical system and trigger the battery light, get a volt ohm meter if you don't already have one, these are great tools even for a do it yourselfer, measure the voltage of the battery with it, should be 12.4 or 12.5, start the car voltage should be 14.5 tops and 13.1 lowest with all accessories and headlights running, blower, radio, windshield wipers and all put a freakin load on it to see. A good charging system should keep up with no problem on idle, bring up the throttle to 2000 rpm should see the charge go up.
The check engine light you need to find a way you can retrieve the codes and see what the computer sees that it doesn't like, it will give you a good starting point remember the code only tells you what the computer thinks is wrong it is not there to diagnose your problem, that takes an understanding on how automotive systems work, or you'll just be throwing parts at it, which is a waste of time and money.
In reading your post, it sounds like you have two wires which are crossed/melted together, or corrosion enough around them that when the key is turned off the electricity still moves between them, which will also explain why the battery light is showing, it is basically a short. Need to get in and start looking at the wiring at the bulkhead connection where it passes through the firewall area, down to the starter and relays. The changing of the ignition switch and still runs with the key off confirms this. A critter could have chewed something just enough to make this happen, too.
The battery light is turned on by the PCM and a fault code is stored. It's not like the red battery discharge light in the old days that was in the charging circuit.
If the car is charging OK, it could simply be a battery temperature sensor problem, for instance.
Your 'ck eng' light being on also tells me a fault code is stored.
It would help the diagnosis to know these codes.