I have no working example, only hints for thinking about this topic.
The function to set a new password via function of core is right. But if you are using this function on user update page, then user will be automatically gets logged out as it is deleting cache of logged in user.

After the logout, can you hook in `wp` and create a new login. You must do this, before anything is send via 'headers'.

    `add_action( 'wp', 'your_login' );`

Also think about the cookie of the login - [`wp_set_auth_cookie`][1]! Also you can delete the current cache for the user - [`wp_cache_delete()`][2].

Maybe this [question][3] and his answers helps you, same topic.


  [1]: http://codex.wordpress.org/Function_Reference/wp_set_auth_cookie
  [2]: https://codex.wordpress.org/Class_Reference/WP_Object_Cache#wp_cache_functions
  [3]: https://stackoverflow.com/questions/5706075/php-wordpress-password-change-logging-me-out