As Webfred has mentioned, this is a bad way to hold the data.
You will have to split the string into its component integers.
If you have no more than 3 .'s , then try something like:
WITH R1
AS
(
SELECT WBS, REVERSE(WBS) As rWBS
FROM Schedule
WHERE ParentScheduleID = 3577
AND Schedule_Level = @SchLevel
AND EntityID = 396
)
, R2
AS
(
SELECT WBS
,REVERSE(PARSENAME(rWBS, 1)) AS rWBS1
,REVERSE(PARSENAME(rWBS, 2)) AS rWBS2
,REVERSE(PARSENAME(rWBS, 3)) AS rWBS3
,REVERSE(PARSENAME(rWBS, 4)) AS rWBS4
FROM R1
)
SELECT TOP 1 WBS
FROM R2
ORDER BY
CAST(rWBS1 AS int) DESC
,CAST(rWBS2 AS int) DESC
,CAST(rWBS3 AS int) DESC
,CAST(rWBS4 AS int) DESC