If the oxygen sensors have not been replaced, they are due.
I would be surprised if the secondary air code was related to oxygen sensors. These are heated sensors but I would expect that the secondary air pump does most of its duty before the oxygen sensors get fired up. I have, however, been wrong before. Can you hear the secondary air blower after a cold start? You may have to be outside the car to hear it.
Inlet camshaft sensor attaches to the driver side of the head, close to the front. It costs about $110 and has a six inch wire lead on it. I have not done one on an e46 so I don't know what you might have to move out of the way to get to it, but it should not be too hard. The car has dual VANOS which adjusts the valve timing based on hydraulic actuators. It needs a cam position sensor to get feedback on the valve timing so it knows where it is. On an e36, you may first notice the idle getting lumpy before the computer realizes that the cam position sensor is not reliable. I have not yet had any trouble with these sensors on the e46s. My usual parts supplier does not carry it and the only ones I found on-line were BMW branded.
If you are leaking coolant, you want to get to the bottom of that problem pretty quick. These engines are not forgiving if you let them overheat. If the top hose nipple on the radiator is leaking, it could snap off at any moment and spray coolant all over the place, emptying your cooling system in seconds.
The other thing I would suggest to you next time around is to avoid any car in its first production year after a major design change. Give them a few years to work the bugs out. For e36s, I suggest '97-'98 and for e46s I suggest '04-'05. On the other hand, the 323 has an advantage over a 325 because it has more torque and it is geared to use it.
The perfect car would be my '04 325 wagon with the engine out of a 330zhp and a limited slip differential. Trouble is, if the local BMW junkyard ever got a 330zhp engine, they would want more than my car is worth for it