Well i think... just a thought, that is feasable and accurate if the Serial data that comes to the PIC have a Special kind of header like at least 2 bytes wide. Let's say the Master will send $55 as header
$55= %0101 0101
you measure the gaps between 1 and zero with internal timer or whatever else method and once it's done, you calculate the baudrate.

So, my assumption should be correct if the master send few $55 or $AA + some kind of special Synchro character.

at the end you have a pseudo code like
  1. 1. Measure incoming $aa $55 pulse width
  2. 2. calculate and set according baudrate
  3. 3. Waiting for synchro byte... bytes or string
  4. 4. Get serial data with according baudrate