If I extract your code to check, and use your sample data:
DECLARE @SpecialCode NVARCHAR(MAX);
SET @SpecialCode = '000151/1'
SELECT CAST(CAST(LEFT(@SpecialCode, CHARINDEX('/', @SpecialCode + '/') - 1) AS nvarchar) AS int) AS expr1,
CAST(CAST(substring(@SpecialCode, CHARINDEX('/', @SpecialCode)+1 , len(@SpecialCode) - CHARINDEX('/', @SpecialCode)) AS nvarchar) AS int) AS EXPR2,
SUBSTRING(@SpecialCode, 0, CHARINDEX('/', @SpecialCode, 0)),
SUBSTRING(@SpecialCode, 0, CHARINDEX('/', @SpecialCode, 0))
Then it works: I get nop errors:
expr1 EXPR2 (No column name) (No column name)
151 1 000151 000151
So at a guess, there is data in your table that does not match the pattern of the data you provided.
Go back to your DB and check the content of your Members.SpecialCode very carefully - I suspect there is bad data in there!