EXTERN PLAYER1 in your construction never works. You may launch PLAYER1 dialogue from a script though.
I'll give you the following example. When you click on a portal, the portal script triggers the dialogue of Player 1:
CODE
APPEND ~PLAYER1~
IF WEIGHT #0 ~Global("VP_SoW_Portal_Talk","GLOBAL",2)~ THEN BEGIN NEJ62 // from:
SAY ~So, once again we are destined to take the unknown road. Let us ready ourselves for what lies ahead.~ [mute]
IF ~True()~ THEN GOTO NEJ63
IF ~InParty("Dar")~ THEN GOTO NEJ64
IF ~InParty("Accalia")~ THEN EXTERN ~ACCALIJ~ 1
IF ~InParty("Imoen")~ THEN EXTERN ~IMOENJ~ NEJ72
IF ~InParty("Imoen2")~ THEN EXTERN ~IMOEN2J~ VP_FIX2
IF ~InParty("Minsc")~ THEN EXTERN ~MINSCJ~ NEJ244
IF ~InParty("Jaheira")~ THEN EXTERN ~JAHEIRAJ~ NEJ532
END
Now from each of the individual NPCs dialogues, you can return to PLAYER1 dialogue. For example, Jaheira answers:
CODE
IF ~~ THEN BEGIN NEJ532
SAY ~It will be good to see our world again <CHARNAME>. We must get back as quickly as possible, for we are surely upsetting the balance by being in a place that we should not be.~
IF ~Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~PLAYER1~ NEJ63
IF ~!Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~HROTHJ~ 403
IF ~InParty("Dar")~ THEN EXTERN ~PLAYER1~ NEJ64
IF ~InParty("Accalia")
!Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~ACCALIJ~ 1
IF ~InParty("Accalia")
Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~ACCALIJ~ 66
IF ~InParty("Sharteel")~ THEN EXTERN ~SHARTJ~ nearportal
IF ~InParty("Imoen")~ THEN EXTERN ~IMOENJ~ NEJ72
IF ~InParty("Imoen2")~ THEN EXTERN ~IMOEN2J~ VP_FIX2
IF ~InParty("Minsc")~ THEN EXTERN ~MINSCJ~ NEJ244
END
This is the only way you can do that, in my opinion. You cannot CHAIN PLAYER1, you cannot EXTERN from the different dialogue and so on.