Missing data when trying to import large columns using powershell
The column you are having trouble with us a varchar(Max) column. This is one of several "LOB data types", which can be up to 2GB. 

The invoke-sqlcmd PowerShell cmdlet will, by default, truncate strings to 4000 characters. This can be very useful to prevent accidently pulling back many GB of data from a query without realizing it. This is similar to the default query timeout, which prevents accidental long-running queries.

A "surprise" LOB column containing 2GB per row could pull back 1TB of data in as few as 500 rows--which would have unintended performance issues for other users on the server and possibly even on the local network, assuming a low bandwidth network.

To override that default, simply provide the -MaxCharLength parameter to indicate you want more than 4000 characters from your varchar(Max) column. (Similar to the way you already supply the -QueryTimeout 0 parameter.