You're filtering by various dimension types (Origin, Cons, Flow, Account) and then in the target destination info you only specify one of them (Origin). The system by default will have marked all members for those dimensions as Common when you used GetDataBufferUsingFormula without extra parameters, and then when you go back to save that buffer, it doesn't know what to use as target members for the dimensions not in the destination info.
I guess what you want, in your case, is to pass the changeIdsToCommonIfnotUsingAll parameter as False, so that source dimensionality is preserved and you can save those datacells back where they came from.