Your question is not very clear. But my magic crystal ball told me, that your issue might be in the way of reading the XML after the import.
If the snippet you provide really works, it seems to be possible to load the file's content into a natively XML typed column. If there were any issues with the file, the XML's format, the XML not being well formed - what ever - this would fail.
Due to obvious reasons there are some characters, which cannot be within an XML's content as they are used for the markup part, namely <, > and & (but there are more).
Such characters need escaping. In XML we speak about entities. Done properly all this magic is done implicitly and you should not have to bother about this at all.
Some possible ideas:
Wrong encodig
The string copy & paste will translate to copy & paste. I have seen cases, were the developers built the XML via string concatenation. If the value is pre-encoded (copy & paste) but the XML's creation is changed to a real XML engine, you will get copy &amp; paste
Wrong reading
If the correctly encoded XML is read with string methods (SUBSTRING et al.), such encoded entities will remain as they are.
CDATA sections
If your XML includes CDATA sections you will find, that the developers auf SQL Server decided not to support this any more. There is actually no reason for a CDATA because a properly escaped content is semantically identical:
<root><![CDATA[test with <, > and &]]></root>
is eaxctly the same as this
<root>test with <, > and &</root>
CDATA sections are removed automatically. Try it out:
DECLARE @xml XML='<root><![CDATA[test with <, > and &]]></root>';
SELECT @xml;
What you can do
It would help to provide a (reduced!) sample of your XML (some part with such characters).
If the XML is not double-encoded, I'm pretty sure your issue is on the reading side.
One example to check this out
DECLARE @value VARCHAR(100)='copy & paste';
DECLARE @tbl TABLE(Explanation VARCHAR(100),theXml XML);
INSERT INTO @tbl VALUES('encodig by engine' ,(SELECT @value FOR XML PATH('root')))
,('correct pre-encoding' ,'<root>copy & paste</root>')
,('double encodig' ,'<root>copy &amp; paste</root>')
/*,('not well formed','<root>copy & paste</root>') --have to exclude this as it would fail*/
SELECT Explanation
,theXml
,theXml.value(N'(/root/text())[1]',N'nvarchar(max)') AS TheContent
FROM @tbl
The result
Explanation theXml TheContent
encodig by engine <root>copy & paste</root> copy & paste
correct pre-encoding <root>copy & paste</root> copy & paste
double encodig <root>copy &amp; paste</root> copy & paste
Finally a trick how you can "correct" a wrong result, if you cannot change the above:
DECLARE @value VARCHAR(100)='copy & paste';
SELECT CAST('<x>' + @value + '</x>' AS XML).value('.','nvarchar(max)')