It is possible to transfer the heme group from the template to the target (model) using a "block" residue as suggested by Andras. But as Christoph pointed out the heme residue type is defined in the Modeller topology libraries, and the corresponding parameters are present in the parameter libraries. So (in theory) all you need to know is how to refer to the HEME residue in the alignment file. This you can figure out by looking at Modeller's residue type library (restyp.lib) where you will find the entry:
31 | HEM | h | HEME | heme ligand
this tells you that Modeller uses 'h' as the one-letter code for the HEME residue. Now all you need to do is add the 'h' residues in the right places of your template and target sequences in the alignment, add "SET HETATM_IO = on" to the TOP file, cross you fingers, and re-run Modeller. If all is fine the heme group will appear in your model.
The difference between this approach and using a block residue is that the block residue is treated as a rigid object that is just copied from the template to the model, for example Modeller can not distort the block residue and the rest of the protein does not "feel" its presence beyond the protein - block residue distance restraints extracted from the template. This limitation dissapears when defining the heme group as a proper residue.
I hope this helps.
Best,
Roberto