custom post type single post preview for pending status

If you do get_permalink($post_id), you should get the preview link. I did the same for my site. The author should be able to see this unless some specific filters are in place which prevent this.

On the post itself, I use this to show it’s pending.

if ( get_post_status( $post_id ) == 'pending' ) {
    echo '<div class="site__notice uppercase">This is a preview. This profile has not been approved yet.</div>';
}

Can you share some code or provide some more info ?