Your codes:
code 12: Battery recently disconnected (ignore this)
code 37: Trans temp sensor voltage low (1995 and on)
code 22: Coolant sensor signal out of range
code 23: Incoming air temperature sensor
Check your connectors on the coolant sensor (bottom of radiator??). Your cooling fans should be coming on only when the radiator gets hot and not running all the time. I don't think this one causes limp mode.
The input air temperature sensor (air filter box??) is important in that the amount of gas injected to a cylinder is computed based on the incoming air temperature. A bad sensor here I assume would cause limp mode.
Unsure about code 37.