Puppet's managehome parameter only works if puppet creates or deletes the user account. It unfortunately doesn't support changing the home directory of an existing user The useradd provider has a similar problem, see PUP-1572.
Puppet could be made to pass the correct arguments though it would be good to fix this consistently across the most commonly used user providers.