Welcome to the community!
I must say you have some interesting code there. While it looks to be very comprehensive, it may be a bit overcomplicating.
To align with your goal, you can break things out. So as an architectural example, you can create variables in your environment that each represent good data input, good data output, bad data input, bad data output, etc. Organizing it this way makes it simpler. Then in addition, you can make a separate request with those differing input conditions / data, and expected output. While it may have some redundancy, it will be more clear, in terms of Postman UI and the results section.
I do see how you are organizing everything and I understand it, but it may be excessive for one request. The Pre-Request Script is intended for everything needed to initialize your one request. This most commonly is authentication, but can also be data initialization. Tests section is just as it sounds, its the validation after one request is executed. After this execution flow is over, you would move onto the next request. What I see you trying to do is make multiple requests within the same execution flow. While ideally that does sound like it makes sense, Postman was not optimized for that execution flow.
As @dannydainton suggested, breaking each out into its own request will work with Postman Architecture much better. So your first test case will be one request, and when that finishes, the second request (a new Postman Request) will be the second test case, etc.
As for the Collection Pre-Request Script, I do understand what you are thinking there, however its not applied in that hierarchical fashion. As Danny mentioned, this is meant for reducing redundancy on a per request basis. Again, this is a place where you would do authentication, as thats the most common thing needed before executing a new request. Its not a one-time execution per collection, although that could be a good idea as well, and a enhancement request.
There is no looping that actually happens over the Collection Object or request object itself, this is where you have to separate them out, as noted. However again, that could be an interesting feature request.
In final, I would separate out those calls as two different tests. Isolate their data as well as two separate JSON objects, ideally in the environments tab, but also can in the Pre-Request section for that request. Then isolate the test data as well per request. And that should achieve your goal.
If you are interested in running multiple iterations, I would suggest looking into Postman Collection Runner, as that may also satisfy your goals.
I hope this helps.