Based on your comments about custom duplication logic as well as duplication of items in buckets, it sounds like you might need/want to also hook into some of the events / processors related to item duplication.
<uiDuplicateItem>
<processor type="Sitecore.Shell.Framework.Pipelines.DuplicateItem,Sitecore.Kernel" method="CheckPermissions" mode="on"/>
<processor method="CustomMethodName" mode="on" type="Custom.Project.Web.Pipelines.DuplicateItem.CustomDuplicateItem, Custom.Project.Web" patch:source="Custom.config"/>
<processor type="Sitecore.Buckets.Pipelines.UI.ItemDuplicate, Sitecore.Buckets" method="Execute" mode="on" patch:source="Sitecore.Buckets.config"/>
<processor type="Sitecore.Shell.Framework.Pipelines.DuplicateItem,Sitecore.Kernel" method="Execute" mode="on"/>
</uiDuplicateItem>
More info on events can be found in this older documentation here. Inspecting your ShowConfig.aspx will also reveal other possibilities with events. For example:
<!-- Event hook after duplicating an item into an item bucket.
Args: (ClientPipelineArgs) Args -> -->
<event name="item:bucketing:duplicating" patch:source="Sitecore.Buckets.config"/>
For code examples, simply decompile the binaries mentioned in the settings.