Admin Page Post Id wp_reset_postdata not working

Having attempted various work arounds the way I have this to work is to not use the_post(). WP_Query should still work but I have swapped over to get_posts().

    $results = get_posts( $args );

    foreach ( $results as $p ):

        $array[$p->ID] = $p->post_title;

    endforeach;

    return $array;

Frustrating that this seems to be a problem with certain admin pages.

Here is a ticket related to the issue: https://core.trac.wordpress.org/ticket/18408