No, SRM only supports multiple recovery sites in a ring topology. Although A could replicate to both B and C, they would need to be separate VMs and not the same ones, otherwise A => B => C is what's supported. See this blog post for more details.
For Shared Recovery and Shared Protection Sites model from the blog, is the main data center able to failover to branch office 1 as first priority and branch office 2 as second priority?
Ideally priority should not matter in this case as you are the one who would be initiating the DR or planned migration based on the situation. Based on the criticality you can decide which set of VM's needs to be recovered in the first place.
Recovery is something that would not initiate without human intervention.
Please keep in mind that the VM's protected in Branch office 1 would not be the same set of VM's protected in branch office 2.
Answering to your original question
Assume you have two clusters ,Cluster A & Cluster B each contain 10 VM's on the main datacenter
You can install 2 SRM server on main datacenters and recovery site B,Assume you will recover cluster A VM's
Then you cannot protect the same set of VM's(Cluster A) on recovery site C. You have to protect cluster B VM's
Generally multi site recovery comes in to the picture when you have production VM's running on recovery site B or recovery site C and those VM's needs to be protected too
Hope i have not confused you further.