Migrating profiles using metadata api does not persist custom values
|Knowledge Article Number||000182338|
|Description||When any a profile is deployed from one org to another using Force.com IDE or ANT migration tool, profile permissions are automatically changed.|
|Resolution||If you deploy a profile from one sandbox to another it automatically changes the Profile permissions because of internal security concerns. This is working as designed as per Salesforce best practices. After deploying a profile you should manually set your permissions accordingly.
Moving profiles from sandbox to production using metadata api allows Users to move the newly created profiles but the custom updates made on those profiles are not propagated to the production instance. This is a limitation on the profile component when using metadata API.