I would be interested to see if the new ECM fixed your problem. I have a similar mis-behaving 2004 Honda Fourtrax 400FA, which started off with code6. That was the angle sensor. After that, I got code 12. All along, I only had limp mode 1 speed forward, and hesitant reverse. I verified continuity, replaced the shift control motor, ECM, battery, and I still had the problem. I then determined the voltage rectifier was pooched, and was providing excessive voltage. I replaced that with new, and got ANOTHER ECM. Still no dice.
I then started thinking along the lines you are. Why won't this POS find Neutral? There are 3 little plugs on the left lower side of the engine, just inside the plastic cover. They have the labels D/N/R indicating drive/neutral/reverse. I found that one plug (reverse) was severed. I fixed the connection, and now I have full reverse, and 1 speed forward. (Note - I have to start it in diagnostic mode: holding shift switches down when I turn on the key) If I start it with the (--) showing on the heads-up display, I at least have 1 forward and Reverse gear.
I'm thinking we might have a similar issue - why can the machine not identify Neutral? When I start the machine in the initialization sequence, and press UP,DOWN,UP, it then goes directly to (--). Whereas it should go to "N" and if you fully depress the throttle it should initialize the shift control motor. this is where I'm stuck.
Would like to hear if the new ECM helps you out.