I was trying a similar thing, and the only solution I got is to have an user with push permission to upstream.
That way you could do a first push to upstream. Right after that, you also do a push to origin; and afterwards you can make your pull requests from branch to branch as you wish in first place.
Just be careful when you create the pull request, because the default selected branch for upstream is always “master”