Could you use rsync (rsync -a)?
Also, are you using an OS method like: tar czvpf?
To what extent exactly are you looking to replicate the environments? Are you really trying to pull users across as well? And you say Archive / Unarchive does not meet your needs?
We've done piecemeal copying behind the scenes in the past, but it was only when we were in a mixed 126.96.36.199 / 188.8.131.52 environment and users needed to move content from the newer environment to the older one. Other than that, when it comes to moving in bulk from development to production, we've always used Archive / Unarchive.
Runcat command line - archive function.
runcat.sh -cmd archive -help