Yoast SEO hooks overriding themselves

Filters should be returned even if your condition fails. You are currently just returning the output when your condition is met, not when it fails.

return $string; at the end of each function should solve your issue.

EXAMPLE

add_filter('wpseo_canonical', 'listpagecanonical');
function listpagecanonical($string) {
    if (is_page(1)){
        //I do my stuff here
        return 'http://canonicalurl.com'
    }
    return $string;
}