Because we don't return the roles early if not empty when filtered in get_user_roles_from_sso() they will always get clobbered by the if statement which sets a fresh empty array.
The function returns the $network_roles array if it is not null, but an empty array is not null.
https://github.com/humanmade/wp-simple-saml/blob/master/inc/namespace.php#L823