You'll have to handle teleportation from Story, which means you'll have to change the Use Action from "Teleport" to "Send a use action to Osiris" and put the logic into Osiris, along these lines:

Init:
Code
DB_RotatingDungeon_Teleporters(0, <Orb 1-1>, <Trigger 1-1>);
DB_RotatingDungeon_Teleporters(0, <Orb 2-1>, <Trigger 2-1>);
DB_RotatingDungeon_Teleporters(0, <Orb 3-1>, <Trigger 3-1>);
DB_RotatingDungeon_Teleporters(0, <Orb 4-1>, <Trigger 4-1>);
DB_RotatingDungeon_Teleporters(0, <Orb 1-2>, <Trigger 1-1>);
DB_RotatingDungeon_Teleporters(0, <Orb 2-2>, <Trigger 2-1>);
DB_RotatingDungeon_Teleporters(0, <Orb 3-2>, <Trigger 3-1>);
DB_RotatingDungeon_Teleporters(0, <Orb 4-2>, <Trigger 4-1>);
[...]
DB_RotatingDungeon_Teleporters(1, <Orb 1-1>, <Trigger 1-2>);
DB_RotatingDungeon_Teleporters(1, <Orb 2-1>, <Trigger 2-2>);
[...]
DB_RotatingDungeon_Teleporters(4, <Orb 4-4>, <Trigger 4-5>);

DB_RotatingDungeon_State(0);


and then use it with:
Code
IF
CharacterUsedItem(_Player, _Orb)
AND
DB_RotatingDungeon_Teleporters(_State, _Orb, _Destination)
AND
DB_RotatingDungeon_State(_State)
THEN
CharacterTeleportTo(_Player,  _Destination);


IF
CharacterUsedItem(_, <Switch>)
AND
DB_RotatingDungeon_State(_OldState)
AND
IntegerSum(_OldState, 1, _NewState)
THEN
NOT DB_RotatingDungeon_State(_OldState);
DB_RotatingDungeon_State(_NewState);

IF
DB_RotatingDungeon_State(5)
THEN
NOT DB_RotatingDungeon_State(5);
DB_RotatingDungeon_State(0);