Here’s the thread where I was wrestling with it.
I’ve got to get out of the office now so anything else will have to wait until tomorrow, I’m afraid. But in general terms, I found that there are some fields in QuoteDtl that, if you’re changing them programmatically, need to be changed in the associated QuoteQty rows(s) as well if you want them to stick. I assume there must be a correct approach that can handle it all in the background as the native UI does, but I haven’t found it. For me, QuoteDtl keeps reverting to QuoteQty and I can’t stop it so I have to make sure both are the same before it happens.