CSV не имеет понятия о типах. Это чисто строковый формат. PowerShell просто заключает в кавычки каждое значение, так как это проще, а выигрыш в пространстве, если не заключать в кавычки то, что не требуется, часто незначителен.
Также включает в качестве комментария в первой строке исходный тип экспортируемых объектов. Затем PowerShell использует это для восстановления при загрузке файла. Но, тем не менее, каждое свойство является строкой, потому что, как отмечалось, CSV не имеет информации о типе.
Что вы можете сделать потом, это восстановить типы:
Import-CSV foo | %{
$_.SomeIntProperty = [int]$_.SomeIntProperty
...
$_
}
Или не экспортировать как CSV, а как CLIXML.