I enjoy helping people solve problems with SAS, but I usually avoid helping someone debug a long complicated problem. I don't usually have the time to debug other people's programs. And, if you are skillful enough to write a complicated program, I believe it is important that you develop your debugging skills to match your programming skills.
Here's one last bit of help: read the article "Ten tips before you run an optimization".
For your problem, you need to perform Tips #1 and #6.
In particular, your modules are using the GLOBAL variable X, but your program is generating random data in X1 and X2. So every step is solving the same optimization problem.
Good luck and best wishes in the future.
... View more