output custom post types on front-page.php

Ok, completely re-written answer based on previous attempts and some suggestions from the comments (which I agree with as I’ve never used wp_get_recent_posts() myself…

Assuming that everything for your custom post type is working correctly (I didn’t test it though) then just use the following for your front-page.php.

<?php get_header(); ?>
<main class="home">
    <h1>This is front-page.php</h1>
    <?php
    $fp_portfolio_args  = array(
        'post_type'         => 'portfolio',
        'post_status'       => 'publish',
        'posts_per_page'    => 6
    );
    $fp_portfolio_query = new WP_Query( $fp_portfolio_args );
    if( $fp_portfolio_query->have_posts() ) : ?>
    <section class="overview">
        <h2>Recent Projects</h2>
        <div class="overview">
        <?php while ( $fp_portfolio_query->have_posts() ) : $fp_portfolio_query->the_post(); ?>
            <a href="https://wordpress.stackexchange.com/questions/363891/<?php echo get_permalink( $post->ID ); ?>">
                <?php echo get_the_post_thumbnail( $post->ID ); ?> 
            </a>
            <?php $link = get_post_meta( $post->ID, 'project-link', true ); ?>
            <a href="<?php echo $link; ?>">View Project</a>
        <?php endwhile; ?>
        </div>
    </section>
    <?php endif;
    wp_reset_query(); ?>
</main>
<?php get_footer(); ?>
</div>