Jonny, for your second question, this type of logic isn't possible with proofing, even with Fusion. I think to do what you want you would need to create two separate teams (at least in WF) for the team you want different users to approve from, like a Team A and Team B. I would create a task in the plan that says "get proof approval", you could set the proof up for someone from Team A to approve. You could then set up a task approval on that task for Team B. When Team A approves the proof, that task is set to complete, which would trigger the task approval to Team B for them to review and make their task approval.
For the first question, you should be able to do what you want in Fusion. With the typeahead fields, it becomes an array so you'll have to use the FLOW module to get the userID and name but you should be able to pass that info into the Create Proof module for the stages.