How to re-arrange this hooked content?

To override action that use in plugin, use can wrap the remove_action code in template_redirect action to make sure your action will be excute later.

For example

add_action('template_redirect', function() {

    // Remove the title.
    remove_action('sensei_course_content_inside_before', array( 'Sensei_Templates', 'the_title' ) ,5, 1 );

    // Add it again
    add_action('sensei_course_content_inside_before', array( 'Sensei_Templates', 'the_title' ) ,15, 1 );
}, 11 );

If it doesn’t work, you can try to increase priority form 11 to something greater.

Note that if your PHP version doesn’t support anonymous function, you need to change the wrap function to a named function.

UPDATE

Why template_redirect?

Because it’s hard to know (IMO) the order of action that plugins excute, so we can try to catch up the order of all actions later, after all of them has been add/remove. template_redirect is one of “later” actions that can help use re-order the actions because this action hook executes just before WordPress determines which template page to load.

UPDATE 2

You can try this code for course_image:

add_action('template_redirect', function() {

    // Remove the image.
    remove_action('sensei_course_content_inside_before', array( Sensei()->course, 'course_image' ), 10, 1);

    // Add it again
    add_action('sensei_course_content_inside_before', array( Sensei()->course, 'course_image' ), 1, 1 );
}, 11 );