The virtual method uvm_object_wrapper::create_object() is not a factory create; it just creates the object the wrapper type represents.
You need to use the factory’s create_object_by_type()
uvm_factory f = uvm_factory::get();
if (!$cast(seq, f.create_object_by_type( // return type uvm_object
seq_q[select_rand], // type selected to create
get_full_name(), // path for override if desired
"my_name") // created object name
) ...