It can be done in Lisp. But it's literally been a couple decades since I've done it. There's a few hoops to jump through but you're essentially launching a headless AutoCAD and loading a document into it and manipulating that.
Because there's no UI, there is no selection sets which use graphics to select things. So you can only "get" a selection set in the document that you're in. Writing all those entities back on by one would be how you'd have to do it and that's going to be a pain given the diversity of entity types.
You're better off making the selection a block, and sending the block to the other document than exploding it...which might or might not be possible.
And if you're talking CADmep...I'm not sure that headless session would run the ARX. It might...there's a few other things I know that are doing that but that's a different thing that launching the full blown app with visibility turned off.
Depending on your need....I'd litterally find just about any other way to do this.
Lisp runs in the Document's namespace which is what makes doc to doc harder in Lisp.
VB, VBA, VB.Net, C++(Arx), or C# are better suited from a tech standpoint to do this IMO.
There's a few other workaround you could do to like have one doc export to a temp DWG/Block on dis and have some sort of reactor/timed even in another doc that looks for a semaphore file, flag or other mutex that allows the other document to know there's something waiting to act upon and bring it in.
These types of coding tasks are really more fun/challenging than they are practical unless there's a strong need.
And then there's the poor man's version, using a tool Like AutoTable to build a macro that performs these actions for you like you would with a mouse/keyboard. Likely be the easiest approach even if not very eligant or refined.