How to set up a development/staging site to make major changes to the theme then update on the live site?

To do this properly you really need to be using a proper git workflow and something like capistrano or ansible for deploying your changes to stage.
The database imports and exports will need to handled separately.