Yes, it’s definitely a WordPress bug. Look at wp-admin/network/site-users.php, from line #141:

if ( empty( $editable_roles[ $_REQUEST['new_role'] ] ) ) {
				wp_die( __( 'Sorry, you are not allowed to give users that role.' ) );

But when you click ‘Change’ button from the bottom ‘new_role’ is empty, new role value is sent with ‘new_role2’ parameter. But ‘new_role2’ is never checked.

P.S. I will remove your posts with roles data as unrelated to the subject – data before and after are identical.