Settings Page – Option won’t save in database

The problem is that you’re not passing the correct database option name:

register_setting(
    'wcs_settings_page', // option group
    'front-page-slogan', // database option name
);

So looking at the get_option() call and the HTML input name in your front_page_slogan_callback(), the correct option name is wcs_settings:

register_setting(
    'wcs_settings_page', // option group
    'wcs_settings',      // database option name
);

Check the reference if you haven’t already done so.