Phase modulation in the polar transmitter
This effect is a purely mathematical problem, caused by trying to do naive sums with phase. If you ignore a vital element of your domain, the \$2\pi\$ modularity, then you should not be surprised if sums that are too simple go wrong.

There are a number of solutions.

The first is to stay in the IQ domain, and calculate phase differences by \$IQ_n\times-IQ_{n-1}\$ (normalised by IQ power if that's not constant) instead of \$\phi_n - \phi_{n-1}\$. This involves several multiplies and adds instead of a single add, but you don't have the initial conversion from IQ to phase in the first place. This might be the best way to implement your upsampler.

The second is to note that in a properly operating system, the magnitude of the phase difference from sample to sample will always be less than \$\pi\$, so you can add an if/then to add or subtract \$2\pi\$ to each calculated phase difference if it's out of range. 

MATLAB has a very handy function called unwrap(), which performs the second solution on a vector of naively calculated phase differences, to remove the phase jumps.