Recovering a DSSS signal with poor clock synchronization
The decorrelation versus clock (or more specifically frequency) error is a Sinc function with the the first nulls (main lobe) at 1/T where T is the length of your sequence. For example, if your sequence is 2 seconds long, the correlation will go to zero when the frequency offset is only 1/2 Hz! Thus you see the challenge with processing gain and frequency accuracy: If your frequency is accurate enough, you can correlate over a long duration and get a significant processing gain. The question is if you have more time or processing:
  if you have more time, then the approach is to step over the various possible frequency offsets during acquisition to find the clock offset (and then track once acquired)- so for example, if your duration was indeed 2 seconds as in my example, you would likely step by 1 Hz in the search process. If you have enough processing this can all be done in parallel, which I have done and posted at Matlab's fileexchange site at the link below:

https://www.mathworks.com/matlabcentral/fileexchange/26035-joint-frequency-and-delay-correlation

In actual implementation, you will want to do both carrier and code tracking once acquired.