Möglich ist es ... aber halt ein klein wenig aufwändiger.
Erstmal brauchen Sie eine Liste, welche Fragen jeweils zusammengehören - es könnten ja im Prinzip auch mehrere pro Konstrukt sein. Das könnten Sie als Array definieren.
$konstrukte = [
['AB01', 'AB02'],
['BB01', 'BB02'],
['CB01'],
['DB01'],
// u.s.w.
];
Dieses Array können Sie mittels shuffle() bequem rotieren. Das ist dann in der Anleitung Rotation mittels shuffle() erklärt - insbesondere auch die notwendige Verwendung von if, isset() und registerVariable().
shuffle($konstrukte);
Das ganze noch in handliche Blöcke zerlegen mittels array_chunk(). Und dann mit einem loopPage() präsentieren - oder eben mit drei getrennten Seiten. Sie müssen nur darauf achten, dass Sie jeweils die richtige Ebene des Arrays ansprechen, wenn Sie die Fragen mit einer FOR-Schleife und question() ausgeben.
Bitte denken Sie daran, dass sich loopPage() nicht mit setPageOrder() verträgt. Aber die Seitenabfolge aus Ihrer bisherigen Rotation würde ja ohnehin wegfallen.