how to set default value for checkbox in wordpress

I think the problem might could be the logic with using checked

 <input type="checkbox" name="aps_display_post_title" value="yes" <?php if ($aps_display_post_title != 'no') {echo 'checked';} ?> />

…on the other hand then running sanitize_text_field on the checkbox value might also be causing the problem.

Instead you might want to break the logic down differently so it is easier to understand, and use this with the code above which checked that the value is not no and so will default as checked:

if ( (isset($_POST['aps_display_post_title'])) 
  && ($_POST['aps_display_post_title'] == 'yes') ) {
    $aps_display_post_title="yes";}
} else {$aps_display_post_title="no";}

update_post_meta($post_id, "aps_display_post_title", $aps_display_post_title);

UPDATE

To prevent the metasave function from firing on post creation, hook to edit_post instead of save_post (and do the post type check internally using the second argument passed which is $post)…

add_action( 'edit_post', 'aps_meta_save', 10, 2);

function aps_meta_save($post_id, $post) {

    if ($post->post_type != 'apspostslider') {return;}

    ...