The SQL syntax for CASE is lightly different from yours, but you were close:
CASE
WHEN Org.ParentOrg_Name = 'Top-Level'
then Org.Displayname
WHEN gParentOrg_Name = 'Top-Level'
then ParentOrg_Name
WHEN ggparentOrg_Name = 'Top-Level'
then gParentOrg_Name
ELSE ggparentOrgName
END AS toplevelorg
Thus, the full statement would be
select Org.displayName,
Parent.displayName as ParentOrg_Name,
GParent.displayName as gParentOrg_Name,
GGParent.displayName as ggParentOrg_Name,
Org.uid,
Org.accountType,
Org.orgType,Parent.orgType,
GParent.orgType,
CASE
WHEN Org.ParentOrg_Name = 'Top-Level'
then Org.Displayname
WHEN gParentOrg_Name = 'Top-Level'
then ParentOrg_Name
WHEN ggparentOrg_Name = 'Top-Level'
then gParentOrg_Name
ELSE ggparentOrgName
END AS toplevelorg
from dbo.Organization Org
LEFT OUTER JOIN dbo.Organization Parent ON Org.parentOrganization_id = Parent.id
LEFT OUTER JOIN dbo.Organization GParent ON Parent.parentOrganization_id = GParent.id
LEFT OUTER JOIN dbo.Organization GGParent ON GParent.parentOrganization_id = GGParent.id