I have found one inconsistency in the scripting. You use c_move and c_scan, but in the player.wdl all of your traces are old trace. I converted over to c_trace and used the same trace modes, but it made the player hover way up in the air for whatever reason. Actually, one of the traces doesn't have a movement mode, so perhaps that's the problem.
EDIT: I see it's in the docs...I'll play with it a bit and see what I can come up with.