I'm looking over the changes to the source code you made. Just a quick couple of notes:
1. In the random tests, rnd should never return 10. The range should be 0 to 9, or -9 to 0. Also add a TODO note: at some point I'll implement a way to seed the random number generator with a specific value, and the rand calls will be deterministic, which will make them easier to test.
2. I like that you added some extra fizzles tests.
3. In int ParseLabel(string word, DNA dna), change the function to look like this: bool ParseLabel(string word, ref int value, DNA dna), and have it return true or false depending on if the value was successfully parsed. And then remove the try/catch block in the function below it and introduce something that checks for true/false. We want to avoid the case where unknown labels get parsed to 0. If a label really is unknown, it's a typo on the user's part, and we should be able to catch that and produce a warning or error message for them so they know right away.
Keep at it I'm impressed how quickly you've figured out the unit tests.