multiplication in frequency domain equals convolution in time domain mismatch
You missed the part where under the DFT, multiplication in one domain is equivalent to circular convolution in the other. Standard problem!

Just pad the signals you want to convolve with enough zeros on both sides, and things will look better.

Also, I hope you're just doing this as to exercise your matlab coding, because getting the phase out of two complex numbers just to multiply them is way, way, way more computationally intense than just directly multiplying the two numbers.