Hello Tess,
I think you will be able to achieve the functionality with a workflow and some GEL Scripting. At a high level it would look something like this:
1. PM creates a requisition.
2. RM navigates to the requistion and adds resource to the requisition. RM changes the requisition status to Proposed.
3. At this moment, a process would start which will:
a. allocate the proposed resource to the project
b. copy the allocation from the role to the resource and
c. remove the role from the project.
Steps a,b and c will be implemented using Gel Script.
4. The process will then change the status of the requisition to Booked.
I checked if I change the status of the requisition to booked by a workflow, it doesn't replace the role with the proposed resource. But if I book the requisition from UI, it does.
I hope this helps.
-Sankhadeep