The transformation is slowing down when you are using the ActiveX scripts because of the way you have your transformations defined.
If I'm correct, when you open your Data Pump Transformation, and go the the Transformation tab, you see a black line for each source field going to its corresponding destination field. This causes DTS to instantiate a separate COM object for each of those individual black lines. Causes a big slowdown.
To fix this... select all of the transformations and click delete. Select all of you source fields and all of you destination fields and create a new ActiveX transformation. In the new ActiveX Transformation, map all of your source fields to their corresponding Destination fields.
When this is complete, you will see ONE transformation for all of your Source & Destination fields. Thus, ONE COM object is instantiated for the transformation process.
This will run much faster. I know it's not what you are looking for as a solution, but it will help get the loads done faster.
I don't know why DTS is seeing your decimal fields incorrectly... I've never had a problem with that in SQL 2000 DTS.
Maybe instead of having DTS create the destination table, you should create the destination table beforehand.