I've come a BIG step closer to what is happening. It is because the difference in user ID versus webservice user id. The module users has a webservice ID of 19. No matter which approach I choose, the assigned user keeps getting set to user no. 19, because the business map doesn't take the webservice markup into account.
I've given up. I'll just revert back to my hack to default the user to the current one when duplicating records.
I've given up. I'll just revert back to my hack to default the user to the current one when duplicating records.