If I have to guess the problem is parameter mismatch. The first one is a string and ROW_NUMBER() produces an integer. Now + is used for both addition and string concatenation. And SQL server just cannot decide what are you trying to do, by default it picks addition. Hence tries to convert all the arguments to integers but of course 'sa0' cannot be converted so it fails. You need to tell it you want to do string concatenation. You do it by converting the second parameter to varchar:
select 'sa05752'+cast(ROW_NUMBER() over(order by subarea) as varchar(10)) from stp5
Not sure why you used + to concatenate the first two strings so I merged those into one.