There are no hard limits as such with collection variables; however, keep the following factors in mind when using collection variables.
Serialization: Instances of workflows with larger collection variables require more time for serialization and deserialization. For more information about serialization, see the following Microsoft article: Serialization (C# and Visual Basic).
Looping: The “For each” action runs continuously without a delay between iterations. Large numbers of iterations (such as 3,000) effectively put a large work load on your server.
Batching: Workflow actions that update SharePoint content are batched until the workflow reaches a delay or task action (or until the workflow ends). With the previous example of 3,000 iterations, all 3,000 iterations are committed, thus contributing to the load.
Logging: Additional load comes from the overhead of logging workflow status and history in the Nintex Workflow database for each iteration.
Built-in timeout: As outlined in this document, a workflow is only allowed to process as long as the built-in timeout. A workflow instance that processes longer than the timeout either stops silently (no error) or errors without a timeout exception. See also Optimizing timeout settings: SharePoint timer service.
SharePoint workflow design: Mass processing as in the example of 3,000 iterations goes beyond the intended design of SharePoint workflows.