Background of default template showing instead of the background of custom page template

As I suspected, the issue is where/how you’re outputting your custom stylesheet.

First, move this to functions.php:

function mypage_head() {
    echo '<link rel="stylesheet" type="text/css" href="'.get_bloginfo('template_directory').'/OldSkool-src/style.css">'."\n";
}
add_action('wp_head', 'mypage_head');

Second, change the action into which you’re hooking your callback.

You’re using wp_head. All other stylesheets will be using wp_print_styles. The wp_print_styles action fires inside of the wp_head action, and will fire after your callback that is hooked directly into wp_head.

So change this:

add_action('wp_head', 'mypage_head');

…to this (note the decreased priority, which will cause it to output later than everything firing at the default priority of 10):

add_action( 'wp_print_styles', 'mypage_head', 11 );

Note: if this still doesn’t work, then we’ll need to know what hook the Plugin is using to output its sytlesheet, as at that point, the problem will be that the Plugin is using a priority greater than 10, or is using a different action hook.