Curious - are you saying 25-60 minutes per row? Or for the whole list? Assuming the whole list.
So, I ran into a similar-ish scenario when trying to update the MfgComment field on JobMtl.
In that case I was making an Epicor Function, but still, I was using a business object to update a row, just like you are. It would take 30 seconds per row, and DMT was the same way. The problem was that the system’s methodology was to pull in the entire Job (the JobEntry BO) and then update a single item in it. I learned there how to pare it down to the single row I needed and now it works in milliseconds.
So… I don’t really know how to apply the same logic here to a uBAQ, but maybe someone else does…?