How to implement a custom password field that redirects to another page upon correct password?

The problem is that WP will redirect to the referrer when the authentication succeeds.

Fortunately, you can also supply _wp_http_referer and it will be preferred over the HTTP Referrer, so we need to add a hidden field to the form and fill it with the permalink of the post in question:

echo str_replace('</form>', '<input type="hidden" name="_wp_http_referer" value="' . esc_attr(get_permalink(123)) . '" /></form>', get_the_password_form(123));

with 123 being the post ID.