Designing an optimal BPSK and/or QPSK transciever in SDR
For a project of mine(uhf radios, pic32mx450f), I went with bpsk and 8b/10b encoding, with a 10 sine + 8b/10b k_28_1 preamble.  This allows syncing to the correct phase, and then I run the moving bitstream through the detector until it hits the special code.  

For phase detection, I looked at quite a few different ways, but ended up doing simple peak tracking and phase adjustment on each peak detect, which could be construed as a form of locked loop.  I ended up locking clock adjustment after the preamble, but it would work to keep it open as well.  Incoming audio is filtered with low and high pass fir filters to clean the signal and remove sub audibles.  Everything I read seemed to point to the filter being an important part of the detector.

I think locking onto a raised root sine filtered drifting qpsk is going to be a challenge, bpsk less so, but probably more doable.  The best options will depend on channel quality, I'd say.

I suppose that since this is a university project, perhaps you have chosen some of these complex items for the challenge?  One alternative that comes to mind in place of directly sharing voice with data, would be to use a sub audible, or low frequency carrier to differentiate between repeated voice and data, similar to sub-audible tones used by uhf radio systems.

This isn't really a direct answer for all your questions, but this is too lengthy for a comment.

Here are some links I studied from dsp.stackexchange.com, which incidentally may be better suited to this question, or have more folks familiar with your questions nuances.

https://dsp.stackexchange.com/questions/8456/how-to-perform-carrier-phase-recovery-in-software

https://dsp.stackexchange.com/questions/3158/how-to-demodulate-an-afsk-signal-in-software?rq=1