In my current environment, everytime I migrate the development environment to production.
We lose any user saved reports and subscriptions.
Any suggestions on how these can be best preserved or migrated?
You have to keep the application ID the same in dev/test/live. The users saved reports are stored based on the region ID on the page, and if the application ID changes then the region IDs change so you lose the reports.
When importing to live, you have the option to use the same application ID from the import file and overwrite the production version. Keep the App ID the same in your environments and you'll preserve the saved reports.