I have a list where inheritance is broken and each item has unique permission. Once my process is complete, I need to move it to another list (using create item) but need to assign same permission as in original list.
I have had to do the same thing in the past. It was easier to write a webservice, wrap that up in a WSP, deploy it, then call it from the Workflow. Thankfully Visual Studio still allows the creation of legacy SOAP webservices, which will talk to the various SharePoint SOAP webservices.
Unfortunately it's one of the rare things you might need to do that are actually really fiddly - and trying to do it with calls to the various SharePoint Webservices directly from the workflow will probably take longer to figure out that just writing the entire thing in C# as a WebService... it's going to touch on role definitions, assignments, list items... like I said... fiddly 🙂