Pues no es nada fácil dar una definición, y mucho menos en los tiempos que corren en los que la fusión de estilos es la nota predominante. Lo mejor es que oigas ejemplos de cada uno de ellos y así ya te haces tu propio concepto.
El metal concretamente abarca docenas de estilos diferentes, desde el heavy hasta el trash, black, death, nu, etc. etc., que por algo todas estas etiquetas llevan detrás el apellido "metal".
Heavy: prueba a escuchar los clásicos; iron maiden, judas priest, Barón Rojo.... Generalmente tienen muuuy currado el tema de guitarras, con auténticos virtuosos de los solos y los punteos. Letras bastante banales por lo general (chicas, motos, cerveza, la chupa de cuero y el tema más recurrente del heavy... el heavy que nadie se me enfade por esto
)
Punk: Sex pistols, La Polla Récords... Música creada con cuatro acordes, suelen incluir muchos coros y, sobre todo, mala ostia a raudales. Sonidos muy acelerados y que suenan como "sucios". Letras con una fuerte carga crítica y social, muy politizadas, aunque suele haber grupos que les da más por letras festivas y juerguistas.
Rock: Esto sí que es una definición muy genérica, pues todo el resto de estilos que mencionas y muchos más nacen de él. Actualmente se identifica el rock más que nada con lo que se denomina "rock urbano" (Barricada, Rosendo, Platero y tú...), aunque también está muy ligado a un nombre ya legendario: Elvis Presley. En fin, es el término más ambigüo de todos.
Todos los que has mencionado tienen un tronco común, que es el rock, del que también se derivan otros estilos como el ska, el reggae, el hardcore (no confundir con el electrónico) y muchos más. Y luego sus 10 millones de variantes, mezclas y otros inclasificables. En definitiva, mi consejo es que no te comas mucho el tarro con etiquetas, que nadie las tiene totalmente claras y muchas veces son un invento artificial y escuches lo que te guste sin prejuicios.