Shouldn't DEFAULT_BRANCH here be the branch field from the ProjectReference class?

Of course you could have the case where a project set has 2 or more projects from the same repository, but they are pointing at different branches.  IMHO this is an invalid project set for the EGit puglin, and we should reject it.