Duplicate record inserted - why trigger is not preventing it?
If you suspect this to be as a result of 2 transactions occurring nearly simultaneously, then it would appear to perhaps be them overlapping and the first not having committed before the second queries the RPTs table.

This will be down to your Transaction Isolation Levels for the queries. Top validate this you could include SET TRANSACTION ISOLATION LEVEL SERIALIZABLE in the Stored Procedure to force the second to wait until the first commits before operating.