Problem with Settings API: changes are not saved after submit

You need to register the proper settings fields in your PPAdminOptions() and also point the form action to options.php:

function PPAdminOptions() {
if ( !current_user_can( 'manage_options' ) )  {
    wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
?>
<div class="wrap">
    <h1><?php echo get_admin_page_title(); ?></h1>

    <form method="post" action="options.php">
        <?php
        settings_fields("paid-posts");

        do_settings_sections("paid-posts");

        submit_button();
        ?>
    </form>
</div>
<?php
}

I tested this on my local machine, and it saved the checkbox state.