Persisting a copied type to another type

I have entity TypeB that extends TypeA. I have a script that needs to programmatically copy some TypeA records, edit a field or two, then persist them all as TypeB. However, I’m getting an error that says it cannot upsert my records because they are of TypeA. Is there a better way to do this?

var someArray = TypeA.fetch().objs,
mpBatch = [];
_.each(someArray, function(mpi) {
      newMp = _remove_meta(mpi); // removes typeIdent, version, and meta fields
      newMp.id = newMp.id + 'someString';
      newMp.parent = some logical stuff;
      mpBatch.push(newMp)
    })

TypeB.upsertBatch(mpBatch)

Doing a TypeB.make() before pushing to the array returns the same error.

"Cannot convert array to [TypeB] for upsertBatch argument objs: [0]: Object is of wrong type "TypeA" (expected "TypeB").
value: [{"type":"TypeA","id":"stuffffff... [InvalidInputParam]"...

In my _remove_meta function I ended up using .toJson() then removing the type field.