The reason for so many paragraphStyles is, you are creating paragraphStyles for each para's.
add a condition which checks for the paragraphStyle with the same property of selected para and apply that paragraph style for the para.
Also, check whether the applied paragraph style of selected para is same as the one you are going to replace (which was already applied on your earlier replace). bcz, you are already replaced the paragraphs of the same properties.
This will reduce the time of applying paragraphStyle for the paras which you aleady applied.
–SaRaVaNaN.N