ParentId is not updatable on Attachment, as you've discovered. This means you will not be able to modify the existing attachments to reparent them to a new parent.
You will probably need to use an external ID on the parent records when you load the attachments in the first place.
This involved setting either a text, number, or email field to both ExternalId and Unique.
Let's say you do this with Account and you add the External Id field called Import_Key__c. Once you've added that field you will need to populate it with a unique value. This can be anything, even a duplicate of the record Id.
Then your mapping will look something like this:
SourceField Salesforce Field
---------------------------------------------------------------------
ParentId Parent.Import_Key__c
You need to then use the Upsert operation. When upserting the attachment, salesforce will use the external Id field value to map back to the proper parent record Id and populate ParentId with the correct value.
Yes, you will need to reload all 6GB of those attachments, but I'm afraid it is the only way.