I understand that you are unable to correctly find the amplitude of different frequency components with wavelet synchrosqueezed transform using wsst function and the cwt function retrieves a more accurate value of the amplitudes of different frequencies.
Documentation for wsst and wsst functions state that both functions normalize the wavelet function to preserve the L1 Norm. This means that if there are equal magnitude components of data at different scales, they will have same magnitude in CWT. The same does not hold for WSST.
You may refer to the following documentation links for more information:
WSST is not expected to preserve the amplitude of different frequency components as it is a time-frequency method that reassigns the signal energy in frequency. This reassignment compensates for the spreading effects caused by the mother wavelet.
You may refer to the following link for more information about WSST:
If amplitude preservation is crucial, using CWT might be more straightforward. However, if frequency precision is more important, WSST offers advantages despite the differences in amplitude representation.
Hope it helped you.