Почему при создании объекта из префаба пропадает угол?
Ты же сам в 3 аргумент Instantiate передаешь пустой кватернион. Это и есть поворот.
bullet.transform.localEulerAngles =  new Vector3(currentWeapon.bullet.transform.localRotation.x,
                    currentWeapon.bullet.transform.localRotation.y, currentWeapon.bullet.transform.localRotation.z);
могу предложить только попробовать вот так вот присвоить. не через кватернион. а локальные эилеровы углы приравнять локальным эилеровым углам.
Кватернион вам просто поворот заданный возвращает в глобальном так сказать пространстве) а вы его в локальный поворот пихаете.