As for all the stored codes, as you have surmised, they are not directly related to the transmission warning light. For those codes, I would suggest dismantling the air path from the air filter to the throttle body looking for cracks. At a minimum, you will likely find that the rubber hood that fits over the throttle body opening is cracked. That is a common failure. It is not too expensive.
If you have not replaced your fuel filter in the past 50k miles, I would replace that as a routine maintenance item. Instructions are here: http://www.frontiernet.net/~papi/Filter.html
You don’t mention any symptoms other than warning light and codes. Is the car running normally? At a minimum, people usually complain of harsh shifts when the transmission is in default program mode.
As for the reason why the transmission is running in default program, the most common failure is the temperature sensor in the transmission. A shop or dealership with the right computer can connect to the transmission computer. If the temperature reading from the transmission does not make sense, that is the problem. That sensor is inside the transmission, but it is not expensive to replace if you were about due for a transmission fluid and filter change anyway. Note that when BMW says that the fluid in this transmission is “permanent”, they mean “will last well past the warranty period, after that, we don’t much care what happens”. It is a good idea to replace the transmission fluid in an e46 every 100k miles. It is very pricey synthetic fluid, changing it is messy, and getting the fluid level correct is tricky. Not something you want to do in your garage.
If the temperature sensor in the transmission is OK, the next suspect would be your battery. The transmission computer does not like voltage dips and spikes, so a transmission computer crash may be the first indication of a failing battery.