The ease or difficulty of this process entirely rests on the quality of the schema that was setup. Let's start with worst to best:
The Identity column is used by the users.
This is the worst case scenario and it violates a fundamental rule with respect to surrogate keys (In this case the Id column): they should be hidden from the user. If the user is allowed to see, use, print on output, stamp on physical items the identity value, then your task is much more difficult. The only reasonable solution is to add a column which indicates the source of the system and modify the unique or primary key constraint on the identity column to include this new column. In this way, your data would look like:
id company_id name address state
1 c1 aaa street2 CA
2 c1 bbb street2 CA
1 c2 ccc street2 CA
2 c2 ddd street2 CA
What makes this solution so awful is that you can no longer use the Identity attribute, all business layer and interface code must change to pass the company_id as a parameter when saving a value to this table and any reports will have to be reviewed to determine if they will break or how they will break. In addition, all foreign key relationships would have to be changed along with all code that writes to those tables. It's a right ole' mess.
Identity column not used by users but no business key.
A "business key" as I'm calling it, is a unique constraint on a set of columns in the table other than the Identity column which is acting as a surrogate key. This violates a fundamental rule with respect to surrogate keys and data consolidation is one area where it really rears its ugly head. The simplest solution is to temporarily add a column to the table that holds the previous system's PK and use that to import the related tables.
Alter Table CompanyName
Add Column LegacyPk int null
GO
Insert NewTable( company_id, name, address, state, LegacyPk )
Select company_id, name, address, state, id
From company_2.Table
Insert SomeChildTable(....
Select ...
From NewTable
Join OldChildTable
On OldChildTable.ParentId = NewTable.LegacyPk
Identity column is not used by users and a business key exists.
This is the best situation. In this scenario, the surrogate key is used as it should be and you can use the business key for your joins:
Insert NewTable( company_id, name, address, state )
Select company_id, name, address, state
From company_2.Table As C2
Left Join company_3.Table As C1
On C1.KeyCol = C2.KeyCol
Where C1.KeyCol Is Null