I am writing a paper about malware and code obfuscation and I realize at the and these abstractions have not got a bordered definition and it is really hard to emphases the point between them, so I checked their natural meanings and define them roughly like below.
Polymorphic has two part which are cryptic engine and message body which can be evolve each propagation by the engine.
Metamorphic is that can evolve itself with using some equivocation technique to find out its semantic equal.
(i.e. The thing makes them confused polymorphic one also can change its cryptic engine.)