Alternatively, you could just change a program directly into an appvar just by changing the type byte. 
Sorry, but I am unfamiliar with this, could you explain a bit?
How do you create your app var?
I did...
Unarchive "appvarName"
!If
GetCalc("appvarName",4)->A
Else
GetCalc("appvarName")->A
End
yes, I realize this could be optimized, but I was testing appvars to see if i could use them like a list, and that seems to have failed, although I bet I just did something wrong.
EDIT: I tried the copy function to save a program into an appvar, then the appvar into another program (just to try both cases), but then I couldn't run the new program. Is Copy(Y1,A,size) the way I'm supposed to do it, where Y1 is the source, and A is the new program/appvar that I'm storing the data into?