Add custom content to nonexistent page

In your first example, you add the rewrite tag personal-development, but then you use the rewrite tag class_type inside your rewrite rule. That method would work if you fixed that error, and assuming 17318 is the page id of your personal-development page. You could then use get_query_var('personal_development') in the template or a template hook, to check what’s been requested.

add_action( 'init', 'dynamic_classes_class_type_rewrite' );
function dynamic_classes_class_type_rewrite()
{
    add_rewrite_tag( '%personal_development%', '([^&]+)' );
    add_rewrite_rule(
        '^personal-development/([^/]*)/?',
        'index.php?page_id=17318&personal_development=$matches[1]',
        'top'
    );    
}