Three Hour Insert
CREATE INDEX index_name ON dbo.tblDataObjectDetail ( DataObjectID, Value ) INCLUDE ( FieldID );
This should eliminate the hash join and parallel sort.
If the insert processes a significant number of rows relative to the existing contents of the target table, you may find it quicker to drop/disable the two nonclustered indexes on the target before the insert, rebuilding them afterwards. This will eliminate the spool and sorts associated with nonclustered index maintenance.
You could also consider a WITH (TABLOCKX) hint on the insert, and/or enabling trace flag 610 for this query to enable minimally logged b-tree inserts.
You should patch your instance from SP1 CU11 to SP3 CU1. Also check why the data types of the Description column do not match between source and target.