Basically, to get started, you'll have to make a new script, with the class "Game Enemy < Game_Battler", and go ahead and write all the alias methods too before you get started.
alias_method :actor_dup_initialize,     :initialize
alias_method :actor_dup_base_maxhp,     :base_maxhp
alias_method :actor_dup_base_maxsp,     :base_maxsp
alias_method :actor_dup_base_atk,      :base_atk
alias_method :actor_dup_base_pdef,     :base_pdef
alias_method :actor_dup_base_mdef,     :base_mdef
alias_method :actor_dup_base_eva,      :base_eva
alias_method :actor_dup_base_str,      :base_str
alias_method :actor_dup_base_dex,      :base_dex
alias_method :actor_dup_base_agi,      :base_agi
alias_method :actor_dup_base_int,      :base_int
Now, you'll need to alias the initialize method, but you're going to alias the method too, and call it a little differently.
Instead of...
def initialize(troop_id, member_index)
Write this...
def initialize(troop_id, member_index, actor_dup = nil)
 # Alias the method
 actor_dup_initialize
 unless actor_dup == nil
  @dup_temp = true
  @actor = $game_actor[actor_dup]
 end
end
Then, alias each of the base_ stats for the enemy
def base_maxhp
 unless @dup_temp
  actor_dup_base_maxhp
 else
  return @actor.maxhp
 end
end
It
should be as easy as that, although I'm away from my XP/VX so I could've missed something. That should give you a good start if you feel like doing the script yourself, otherwise you could wait until tomorrow and I could probably write one for you.
For Scene_Battle, or maybe even for Sprite_Battler, you'll have to add something you can call with a call script for the 'actor_dup' to work, right before you call the battle, so you can call it like so...
@> Call Script: Enemy::ActorDup[1, 5] # Actor ID to Enemy ID
@> Call Battle: Hell Demons x 2, Evil Actor x 1
When I have time, I'm definately going to take my own swing at writting this.