It should keep the permission if the user is allowed to do so - try it again with root privileges. As for cp, the same applies, but you'll probably also need to specify other switches, such as "-a".
It looks like the busybox tar needs to have the 'f' switch at the end, as anything after that is taken as the input filename. `tar zxvf somefile.tar.gz ` should work.
cp and tar are (usually) not part of shell builtins, but you can invoke "/bin/bash" to get the bash shell, or change the symlink /bin/sh to point to /bin/bash to have it used for all sh scripts.