If you are sure that no large arguments are being passed between workflows, the issue might be that the UiElement becomes invalid by the time it is returned. This can happen if the Outlook application is closed or its state changes during execution. To verify this, add a Log Message activity near the end of the workflow to log the UiElement.Selector or a property like UiElement.GetType() to confirm that it is still valid.