Normally, when you do overlap-add, you zero-pad the data before the FFT, and save the left-over tail to later add to the result of the next frame processed.
Your initial "bad quality" problem is probably due to some bug where you don't preserve the exact phase information (the full complex FFT result) between the FFT and IFFT. You will have to fix this, whether or not you do overlap-add or overlap-save fast convolution or other processing.