As you explained before, you are indeed reproducing the exact network by running the script, which is really good!
However, your second use case is expected. Running only block 2 won’t give you the exact same results as running the whole script together, because you have already sampled some random numbers.
Since the seeded PRNG was already used, it will return new random numbers, which might change the behavior of block 2.
If you really want the same results for each block, you would have to re-seed all number generators in each block. Could you try that?