If you want a small, powerful program that can perform such magic as to copy a string to an appvar/program/whatever (or converting one variable to another, rather), you might be interested in the progrm CopyProg. You can find the hex code on the hexcodes page, or if you want to download the program to your calculator, you can download it here. Version 2.00 also exists and is even more powerful, but it is larger.
So as an example, to copy Str2 to the appvar named "STR2", you would do:
"DStr2→Str1 ;The 'D' at the beginning tells CopyProg that it is the string variable
"USTR2 ;The 'U' at the beginning tells CopyProg that it is an AppVar
Among other things, you can also use this to copy whole programs into a string variable, modify it, then copy it back, thus editing a program with a BASIC program.
I wonder how useful it would be to make a program that backs up string variables to an appvar at the beginning of a program and then another program (or the same one) to restore the string variables… I am thinking that maybe the user could store a list of variables to back up in Ans, like "Str1Str2ABCPic7" then have it store that to an appvar (kind of like a group), then to restore them, you would do something like 0:Asm(prgmBACKUP