Versioning collections when not using API specs in Postman

Hello, I am wondering if anyone has a suggestion on how we can version our Postman collections and monitors, even though we do not store our API specs in Postman?

For example:

We have 3 environments with multiple code versions.

QA - current Version A
QA - previous version B (which eventually becomes QA current Version A)

TRAIN - previous version B (same as QA)
TRAIN - previous version C (which eventually becomes TRAIN previous version B)

PROD- previous version B (same as QA)
PORD - previous version C (which eventually becomes PROD previous version B)

NOTE - sometimes we can even have a 4th version depending on our release schedule.

Our process is to create new tests for QA - current Version A. Sometimes we will create a brand new collection\monitor, and sometimes we will fork an existing one, depending on the test we are creating.

We use the same collection\monitor to run on all 6 versions, but use a different environment variable for the different environments (so 3 environment variable total and 3 sets of monitors but they all point to the same 1 collection).

The issue occurs when we fork an existing collection in QA current Version A, then merge the changes back to the main collection when complete. If we then try to run that same collection\monitor on one of the previous version B or previous version C, the code that is new to only current Version A will fail.

I am looking for a way to version my collection\monitors so that we can continue our process in the same manner, where we have 1 collection, but multiple versions of that collection, and I can tell the monitor which version of the collection I want to run.

From what I can see in Postman, versioning is only available if you store your API specs in Postman as well. However, our team uses a different tool for storing our API specs.

I know this is confusing, and hope it makes sense. Any help or suggestions would be much appreciated!