How to select only camera's across multiple scenes in bpy?
Always looping over context scene's objects.
Logic error, you were only ever looping over the context scene's (&quot;the first ones&quot;) objects.
Test code below, selects all and only camera objects.  Sets the scenes camera as active for each viewlayer.
import bpy
for scene in bpy.data.scenes:
    bpy.context.window.scene = scene
    for ob in scene.objects:
        ob.select_set(ob.type == 'CAMERA')
        # set scene camera to active for each viewlayer
        if scene.camera:
            for vl in scene.view_layers:
                vl.objects.active = scene.camera