For those who are trying to do similar things and already have the attachment id for your custom thumbnail stored in post meta, here is what you need to swap out the thumbnails used in the navigation:
add_filter( 'post_thumbnail_html', 'my_post_thumbnail_html', 10, 5 );
function my_post_thumbnail_html( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
if( 'ps_promotion' == get_post_type( $post_id ) && 'thumbnail' == $size ) {
if( $thumb_id = get_post_meta( $post_id, '_ps_custom_thumbnail', true ) ) {
$html = wp_get_attachment_image( $thumb_id );
}
}
return $html;
}
Obviously, you may need to change the name of the meta key.