I think you need to use MPSTART to use terminal selection, even if you're terminal 0 (the host). Since you don't seem to be actually using multiplayer you should get rid of one of the parameters on BUTTON so that it only has 1 or none.
Also, you can assign BUTTON to a variable to avoid having too many BUTTON calls.
Yep. User-friendliness is very important, but you can still do what I said as a last resort type of thing. After all, many programs still require the user to set up something before they make use of the software. (E.g.: Compiling projects in Linux and fixing any dependencies. >_<)
Anyhow, it's nice that you put users first! I certainly appreciate the effort!
Another thing you could do (which is kind of cheating the system) is upload your project by parts, and then instruct the user to concatenate the different parts themselves.
Also, remember to call GCLS to erase it after each frame.
(E.g.: "VSYNC 1:GCLS" or "WAIT 1:GCLS")
You can also specify the graphics page to clear with GCLS if you are using a specific page.
[Sorry, I forgot this part.]
You can't copy and paste entire programs most of the time.
However, you can copy and paste pieces of code with some of the buttons on the on-screen keyboard. They're in the bottom right corner.
Press SEL then use the D-Pad to select text. You can then use the COPY and PASTE buttons to do just that.
And remember, don't plagiarize!
Remember that SPHOME works relative to a sprite's top left corner.
Example: If your sprite's size is 16x16, you could use SPHOME <sprite number>,8,8 to set the sprite's home in its center.