Replication of database used by two programs
For the PK violations:

You need to ensure that each node in your Peer-to-Peer topology has an identity range island which will not conflict if inserts originate at that node.  To do this you'll need to run DBCC checkident(talbename, reseed, start of range), ie. DBCC checkident(tablename, reseed, 100000) for Node 1, DBCC checkident(tablename, reseed, 200000) for Node 2, and so on..

For the Update-Delete conflicts:

You need to add a location specific identifier column to your table and extend this column to your PK.  This will reduce the chances of conflicts occurring.  If this is not an option, you will lose data as the change that occurred on the node with the highest Originator ID will win the conflict.  This may or may not be okay for you.