Unless you know the application thouroughly well, its best to change the datatype to BIGINT. There could be some queries performing aggregates on these columns that will behave weirdly if you go to negative numbers..
Changing INT to BIGINT is a pain but is a one time pain. And dont even try to do an ALTER TABLE to change it to BIGINT. Your server might crash. Create a similar table T2, bcp out the table in smaller files (perhaps 1 mil records per file) depending on your storage/processor power, bcp in into T2, validate the data, script out all indexes, cosntraints from T1, drop T1 and add the indexes, constraints to T2. Also monitor log file during this bcp out/in. It will most likelye xplode. Test this entire proces 1-2 times in a test environment to get an estimate of time and document the steps..
And yes you need to change all stored procs to use BIGINT.
As for replication, not much to worry about it. You can just back up the DB, restore on the subscriber and re-implement replication.
Finally, if you have any views or any queries with UNIONS against tables with BIGINT you might end up with bad query plans
Example:
Select col1,col2 from TAble1 WHERE ....
UNION
Select col1,col2 FROM Table2 WHERE...
Suppose your col1 in Table1 is BIGINT, SQL Server will do an implicit conversion of col1 from Table2 to BIGINT BEFORE the join.. So you will see it simulates an ALTER TABLE alter column bigint for Table2 to convert col1 to bigint before doing the join. This can kill the queries. I have seen it happen. which is why I am takng the pain to type all this
.. You'd think you are done after conversion but not yet... 