Hombre, amigo, te la estás complicando demasiado:
Código Delphi
[-]
ot.AsAsFloat := vCtd.AsFloat*vUni.AsFloat;
ot.AsCurrency := vCtd.AsCurrency*vUni.AsCurrency;
vCtd.AsCurrency := UnDatamodule.UnDataset.FieldByname('UnCampoMoneda').AsCurrency;
El componente TjvValidateEdit, soporta: AsFloat, AsInteger, AsString, AsCurrency y no recuerdo que más.