Pretty damn accuracy as well as impressive, nice job.
There are a lot of things to talk about about this level technically-speaking, so much that I don't feel like writing it all. Instead, here's a list of the most relevant issues :
(Picture 1) In the room (6,9), if you flip to the ceiling right above the trinket, then flip back down to collect it
while triggering the cutscene, a glitch about Viridian getting stuck in place forever will be triggered. This glitch carries over to everywhere else in the game, making it unplayable as a whole. The usual way to get rid of it is to reboot V6 back. Fortunately it can only happend in this location of the level. To make sure the player won't trigger it by accident ever again, extend the script up to the ceiling, that way you can't trigger both at the same time. A similar glitch occurs upon doing the combination of triggering a script and saving a crewmate.

- - -
All of your dialogue scripts repeat. In the long run and for the player this wastes time, breaks the flow of the gameplay and doesn't make a lot of sense in the story.
You can design the level in such a way that the player will never cross them ever again (like in a one-way, linear room progression, or section where the player can not or has no reason to go backwards).
But more conventionally, we use what's called a "load script" to get rid of this problem. This uses flags, so if you don't really know how to use them, simply copy the code back :
Inside the script that the player will cross in-game (Let's name it "important"), you want to write these two lines :
ifflag(x,stop)
iftrinkets(0,loadascript)
Make sure that nothing is written inside the script named "stop" (You can name it whatever you want, even filling in nothing at all works).
The script "loadascript" (Once again, name it all you want), is where the dialogue needs to be added at.
At the end of that particular script (Or the dialogue end), do not forget to write this crucial line :
flag(x,on)
"x" represent the number identity of the flag, and you can use up to a hundred per level. Make sure that the same one is used in both instances of its utilisation, in the mother script "important".
Doing that, scripts will never repeat again.
- - -
Here's yet another bug in V6 regarding dialogue. If 17 or more dialogue commands such as "say" or "reply" are used in a row with nothing else in-between, one of the following textboxes will not show up, missing parts of the story. Furthermore, the game crashes if you press the buttons to keep clearing the text(Fastforwarding), a bit too quickly. A fix is to add a delay command between the dialogue commands, and that before the 17 limit:
delay(x)
That command normally freezes Viridian. But it can be used to fix this issue for unrelated reasons. x is a number used to determine the length of the delay. For instance, half a second of wait for Viridian is roughly a value of x = 15. Choose what value you want, but never below 6 or it won't work.
- - -
In a few rooms (6,3 & 9,8), there are a couple unfilled roomtext entities . Why is this a problem ? Well, due to yet another glitch in VVVVVV, these empty roomtext will sometimes be filled with completely unrelated text (Either coming from the level itself, or other customs). Not only can it be off-topic, but that text can also overlap with other ones, making reading impossible.
Maybe I'll write more later. But anyways, this remains very cool despite all of this.