Different Admin Theme – Based on Role?

You can set force a specific Admin Color Scheme pro user role through a function.
Personally I would first take away the option to select the scheme from profile.php (Back-end Users/Your Profile)

Below is just an example function which does set a specific color scheme for specific user roles.
Please make first make a backup of the functions.php before adding this function.

/**
 * Set Admin Color Scheme by Role
 * Codex:   {@link https://codex.wordpress.org/Roles_and_Capabilities}
 *          {@link https://codex.wordpress.org/Function_Reference/wp_get_current_user}
 * @version WordPress 4.6 
 */
add_filter( 'get_user_option_admin_color', 'wpse_238039_set_admin_color' );
function wpse_238039_set_admin_color()
{
    $current_user = wp_get_current_user();

    // Check for the user role
    if ( user_can( $current_user, 'subscriber' ) )
    {
        // Remove the Admin Color Scheme picker
        remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

        // Set the Admin Color Scheme you want for this role
        return 'light';
    }

    if ( user_can( $current_user, 'contributor' ) )
    {
        remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
        return 'coffee';
    }

} // end function

It is of course possible to leave the Admin Color Scheme option on the user Profile Page by removing those lines from the function.

Would also like to have specific menu items / etc shown only for
certain roles.

It is possible to add/remove items within another function with the same kind of IF statement blocks. Just be aware of what you do/want in a specific function, and use the correct hooks

Note: see the @link urls in the function above for references.