Is this a Snapshot replication or Transactional Replication or Merge replication you are using? If it is Snapshot replication, I would say it is better not to use replication at all. It is better to use Back and restore method. If you have softwares like Litespeed, your back up and restore will be very quick.
If it is Transactional Replication, then it is better to not have foreign key and other constraints like that on your subscriber.
If it is Merge, yes, you will need to have all those constraints. And if it is failing then you have some kind of problem with your application.