The problem is you're using RegisterUnitEvent (stuffhere) when you're meant to be using RegisterEvent(stuffhere). Also, don't use spaces after the RegisterUnitEvents, and your phases are messy, the way you've added the spells, the boss will fire all of them off once, instantly. Use functions for each spell, that way you can add a timer for them.
The way RegisterEvent works is this;
Code:
pUnit:RegisterEvent(How often you want this event to happen, Amount of times you want this event to happen, "name of event")
It's too early for me to go fixing all of your spells, so I just fixed the other stuff, you can do the rest 
Code:
function phase_1(pUnit, Event)
if pUnit:GetHealthPct() < 99 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(12, 0, "Chaos!")
pUnit:CastSpellOnTarget(47248)
pUnit:PlaySoundToSet(12505)
pUnit:RegisterEvent(1000, 0, "phase_2")
end
end
function phase_2(pUnit, Event)
if pUnit:GetHealthPct() < 98 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(12, 0, "Destruction!")
pUnit:CastSpell(39023)
pUnit:PlaySoundToSet(12506)
pUnit:RegisterEvent(1000, 0, "phase_3")
end
end
function phase_3(pUnit, Event)
if pUnit:GetHealthPct() < 97 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(12, 0, "Oblivion!")
pUnit:PlaySoundToSet(12507)
pUnit:CastSpell(38627)
pUnit:CastSpell(38533)
pUnit:CastSpell(38533)
pUnit:CastSpell(38533)
pUnit:RegisterEvent(1000, 0, "phase_4")
end
end
function phase_4(pUnit, Event)
if pUnit:GetHealthPct() < 50 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "I will not be denied! This world shall fall!")
pUnit:PlaySoundToSet(12508)
pUnit:CastSpell(45664)
pUnit:RegisterEvent(1000, 0, "phase_5")
end
end
function phase_5(pUnit, Event)
if pUnit:GetHealthPct() < 20 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "Do not harbor false hope. You cannot win!")
pUnit:PlaySoundToSet(12509)
pUnit:CastSpell(40343)
pUnit:CastSpell(38441)
pUnit:CastSpell(512)
pUnit:CastSpell(25442)
pUnit:CastSpell(17668)
pUnit:CastSpell(40876)
pUnit:RegisterEvent (1000, 0, "phase_6")
end
end
function phase_6(pUnit, Event)
if pUnit:GetHealthPct() < 01 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "Ragh! The powers of the Sunwell turn against me! What have you done? What have you done?!")
pUnit:PlaySoundToSet(12510)
pUnit:CastSpell(44998)
pUnit:RegisterEvent(1000, 0, "phase_7")
end
end
function phase_7(pUnit, Event)
if pUnit:GetHealthPct() < 100 then
pUnit:RemoveEvents();
pUnit:CastSpell(46474)
end
end
function boss_start(pUnit, Event)
pUnit:RegisterEvent("phase_1",1000, 1)
end
function boss_OnKill(pUnit, Event)
pUnit:SendChatMessage(14, 0, "Another step towards destruction!")
pUnit:PlaySoundToSet(12501)
pUnit:CastSpell(31972)
end
RegisterUnitEvent(25315, 1, "boss_start")
RegisterUnitEvent(25315, 3, "boss_OnKill")
boss_OnKill will happen when the boss kills someone, if you want it to happen when the boss dies, it's RegisterUnitEvent(25315, 4, "boss_OnKill").