My original query is fine...
There is NO problem with the data.
In both mine and your queries there is (currently) one record match.
What I'm saying is that if there is a match (a value is returned) then delete ALL records from the dbo.abn_extract table.
SUBSTRING(E.[Column 0], 1, 13) = H.Header_Id
is true on one dbo.abn_extract record then I need to delete ALL other [Column 0] records as well (even though only 1 [Column 0] record matches).