The first step is obviously to ensure you've identified the next actions for each project you're working on and put these next actions in to the correct context lists. After that, I think any attempt to establish--a priori--a method for selecting in which order you'll perform these actions is not only futile but likely counterproductive as well.
Because a properly maintained system is so effective at ensuring you have everything you can do quickly accessible, GTD advocates deferring decisions about what to do until it's time to start a task (i.e. tasks shouldn't be scheduled ahead of time or put on a calendar unless, like an appointment or meeting, they are associated with a real due date). By definition, anything identified as a next actions is ready to be performed, and is only waiting on your desire and ability to perform it.
This deferral enables the GTD practioner to be flexible to changing constraints and deadlines. At any given moment you should be able to quickly scan the appropriate context list and determine--right then--what you have the time and energy to accomplish.
If multiple items meet those criteria then I suspect you'll have a gut feeling for which projects are furthest behind, or highest priority, or which need to show some progress to get your TPS-report-needing boss out of your cube so you can get back to work. In other words, simply spend the effort required to maintain your GTD system and then use your context lists and your in-the-moment priorities and proximate constraints (time and energy) to decide what to do.
As for your meta-problem of how to balance a high demand on your time and a list of "high priority" projects with similar due dates: you've just described the fundamental task of knowledge work, which I think is perhaps most eloquently and entertainingly articulated by Merlin Mann on his 43folders website (specifically his Time and Attention articles and talk).