現在はマクロ変数自体がないのか、それともマクロ変数はあるが、空もしくは別の値が割り当てられているのか、どのような状況でしょうか。
まず、簡単な再現プログラムを作成しましたが、マクロ変数は問題なく作成されました。
main.sas:
%Macro Mtest1;
data _null_;
call symputx('X1','TEST1','G');
run;
%Mend;
%Mtest1;
%Macro Mtest2;
data _null_;
call symputx('X2','TEST2','G');
run;
%Mend;
submit.sas:
%include "C:\temp\main.sas";
%Mtest2;
%put &=x1;
%put &=x2;
結果:
SASの問題ではなく、使用しているコードに原因がある可能性が高いと思います。
原始的ではありますが、
・options mprint mlogic; を指定し
・%includeにsource2オプションを指定し、
・%put &=p_value_result; というステートメントをマクロ側および呼び出し側のステップの合間合間に入れ込んで、
きちんとマクロが実行されているのか、マクロ実行時はマクロ変数に値が格納されているのか、
格納されているとしたらどの時点で消えているのか、等を調べてみてはいかがでしょうか。