I did not have any "not coded" errors using BavTEch. BT just said (off the top of my head, so might not be exact) 5d39: transfer case, clutch position unknown. It was only using DIS that I found out that my transfer case was not coded. Coded/programmed it using SSS and error was gone. So, in short BT did NOT say coding needed, although that was what was needed.
Speed sensors (at least on my 328xi, 02/07 build) are located in the axle. They read the "splines" in the axle near brake rotor. It's held on my a hex screw I think.