public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
Трансформ префаба игнорируется, если тебе нужен поворот, то задавай его при спавне, либо делай систему родитель-ребенок и в ребенке уже задавай повороты, родитель же будет всегда брать позицию и поворот, переданную в функции выше, либо дефолтные нулевые, если ничего не передано.
PlayerHealth также не совсем верно, так как Health это скрипт для абсолютно всех объектов, которые хоть как то лечатся или калечатся. Если тебе нужно как то уникально обработать Health для игрока, ты либо наследуешься от базового Health, либо создаешь еще один скрипт и подписываешься на OnChange в Health