Just a couple of minor points, not the solution to the main issue.
You don't need 'index' in layout 0 as a variable. Construct has a 'loopindex' anyway which will just be set to the current number of times the loop has passed. So just replace 'index' with 'loopindex' and remove your index variable (and the 'Add 1 to index').
You don't really need the label 'each question' in the loop. I'm not sure if you're mixing it up with a foreach loop and was trying to name it appropriately. But in this case, you don't need a name for the loop at all.
I've sent a request but I can't see what's going wrong. What I'd do is run in debug mode, then at the start of layout2, check to see what's in text. You can then see which layout isn't working, that'll be a start.