Runtime Fatal Error : p_sequencer can't be casting from a parameterized sequencer

Is there a specific reason you are creating a specialized sequencer instead of using the generic uvm_sequencer? Also, is there a specific reason you are trying to declare p_sequencer?

For portability and reuse, it is recommended to just use the uvm_object_utils() macro in a sequence and not use the uvm_declare_p_sequencer() macro. Additionally, you should instantiate a parameterized uvm_sequencer in your agent instead of creating a new component.