I do not know how Denominator[1/p+q] will behave. I find this simple example
In[1]:= expr1 = 1/(a + I b) + c + I d;
Denominator[expr1]
Out[2]= 1
In[3]:= Numerator[expr1]
Out[3]= 1/(a + I b) + c + I d
In[4]:= {LeafCount[expr1], LeafCount[expr1[[1]]] + LeafCount[expr1[[2]]],
LeafCount[Denominator[expr1]] + LeafCount[Numerator[expr1]]}
Out[4]= {168640, 168639, 167369}
The first total is 1 less than the leaves in expr1 because the Plus has been removed. The second total appears to be missing 1271 items so I am concerned about your multiplying and dividing by conjugate of denominator. I suppose it might be possible that the Numerator and Denominator are somehow rearranging the expressions to end up with fewer leaves, but I would verify that the results are correct before using them.
My apologies for making any error. If you can explain what I did incorrectly I would appreciate it.
I do not think Conjugate[Denominator[expr1]] * Numerator[expr1] should be real, but I had hoped that this would provide a rapid method of extracting the real and complex parts. I would verify your calculation on a smaller example to see if this is correct.
I do not know how to interpret your using Chop, everything I was doing was intending to be exact calculations.