What happens if you try running just seq2 on agent1, without running via a virtual sequencer?
seq2.start(env.agent1.sequencer, null);
If this doesn’t work, then you will have to trace through why that is. I suspect that you may have mis-connected something in the env, especially if the same seq works for the same type of agent.
BTW - You may also like to consider removing all the uvm_sequence_utils()/
uvm_sequencer_utils() macro code, since it is deprecated. Replace with uvm_object_utils and
uvm_component_utils() respectively.