Unless you're redefining commands for proc creation, it shouldn't matter which is defined first. Putting it in a different location in the same file makes it sound like something is erroring out in the middle of that file and preventing the rest of it from running. If you're not seeing any error messages in your log from startup, try adding a log message after each proc is defined in your source file, as well as at the beginning and end. If you only get some of the log messages then you can pinpoint where it stopped running (and hopefully why).
If you get all the log messages but still see only some of the procs defined, then you've got everyone baffled. If you could share your entire source file, maybe we could reproduce the issue.