Yes, it would be a total rewrite to get away from XML because sproc b expects it in that format and does a lot of complex processing with it in that format.
I will look into the sp_OA methods. I haven't used them before. Thanks for pointing me in that direction as an alternative.