I guess the problem is that the subscriber issues SET IDENTITY_INSERT ON. That is certainly the gist of the error message. When replicating a table with IDENTITY columns, you want the IDENTITY values from the published to appear at the subscriber. You certainly do not want new values.
I think the solution is to change the table so that the IDENTITY column is created as
CREATE TABLE tbl (id int IDENTITY NOT FOR REPLICATION NOT NULL,
othercol int NOT NULL)
That is, on the subscriber, the table should not have the IDENTITY property.