All I can say:
If company A's csv is always the same format, then you know the order of fields. What's numeric, what's string, etc. So I would probably write a converter per company to start with.
Later you may come up with a "master" converter.
You could have re-usable functions to handle field types, getters setters (accessors, mutators), that does the casting.
If it's going to be a large number of companies, I'd get with them and fully understand the formats used. The best of luck with this monstor.