Thanks to help from @BillWoodger, I found that the issue was not actually with packed data but the data contained binary zeros. Some googling led me to this link which says that a binary 0 is handled differently between dts and ssis. In sql server 2005 ssis, a binary 0 is treated as an end of string character so everything after it is truncated.
My solution was to convert the original column to varbinary(100) in my source sql query and then add a script tranformation with vb.net to strip out the binary 0.
source query
select cast(mycolumn as varbinary(100)) as mybinary
vb.net tranformation
Dim hexValue As Integer Dim finalStr As String finalStr = "" For i As Integer = 0 To Row.mybinary.Length - 1 hexValue = Row.mybinary(i) If (hexValue = 0) Then finalStr = finalStr + " " Else finalStr = finalStr + System.Convert.ToChar(hexValue) End If Next Row.outColumn = finalStr
Here's another link that was helpful but didn't work for me b/c it eliminated some extra characters.