It seems like you just can't use a supplemental repo - an additional repo with just one or two updated packages - when doing an upgrade. The repository selection screen isn't displayed, so you can't do it interactively. Passing repo= seems to cause anaconda to assume that's the *only* repository you want to use, so of course this fails completely because your repo doesn't have all the other packages in it. Surely this should be possible? I guess it might be doable with a kickstart, but that seems like the only way.
upgrade doesn't do any package selection whatsoever, so adding extra repos doesn't really make sense. I'm not sure whether we'll have fixed this in newui or not but we're moving towards upgrade being a separate process entirely.
What if you want to upgrade a system with packages installed from a third-party repo, and provide that repo so the packages will be upgraded as part of the upgrade? What if you want to override the packages in the stock repo (which is what I was trying to do when I hit this problem)?
Fedup looks for new repos using the same method it uses to find the new Fedora repos - it changes the $releasever but otherwises uses the existing .repo files. You can also add repos directly with the --repo flag.