I believe I was having a similar issue. I was trying to claim a smart object that has a single slot, and it was being claimed by two different NPCs at same time.
What worked for me was, right after calling “MarkSmartObjectSlotAsClaimed” call “MarkSmartObjectSlotAsOccupied”. Don’t forget to call “MarkSmartObjectSlotAsFree”, when the NPC is no longer using the slot.
Hope this was the answer you were looking for.