I am trying to implement a basic digital modulation scheme (BPSK) with a low data rate of 5 kbps. The requirement is to support a frequency offset of +/- 10 KHz. I would like to know what are the criteria to decide how much offset can be corrected? My burst data header is only 50 bits. I want to know if it is possible to track the frequency offset and also do the timing recovery (gardner) in the header bits.
The answer is yes it is possible and any amount of frequency offset can be corrected to the extent your sampling rate is sufficiently high enough for unambiguous frequency resolution over ±10 KHz. A very simple frequency discriminator that can be used in a carrier tracking loop is further described at this post:Carrier frequency offset estimation for QPSK and asymmetrical spectrum and results in determining the frequency offset simply from the product of two successive (complex) samples given as $I_1Q_2-I_2Q_1$. For BPSK you can also remove the modulation from the frequency error result by first squaring the signal, in which case the result will be twice the actual frequency offset; which is of no consequence since the loop will drive the offset to 0 in any event).
This discriminator has unambiguous frequency resolution for IQ rotation up to 90° between samples. A 10 KHz frequency offset will rotate 90° if the sampling rate is 40 KHz, so as long as your sampling rate can be greater than this rate, this should be a very simple approach to carrier recovery / Doppler wipe-off (80 KHz if using the frequency doubling approach to strip the modulation).
The maximum possible offset sets your search window and the header duration if used for acquisition sets the carrier recovery Loop BW. The carrier Loop BW sets the acquisition SNR required (wider BW is faster but requires a higher SNR). So use a loop BW that is wide enough to settle for a step response in frequency change from 0 to 10 KHz within the time duration of 50 symbols. (And then the loop bandwidth can be further tightened once acquired if channel dynamics allow).