I found yours problem. You removing symbol if even you dont find it ;) Look at updated answer:
CREATEFUNCTION uf_RemoveNonAlphaNumericChar(
@p_CharIndex int,
@p_Value Varchar(max) )
RETURNS varchar(max)
AS
BEGIN
SET @p_CharIndex = PATINDEX('%[^0-9,a-z]%', @p_Value)
IF @p_CharIndex > 0
BEGIN
SET @p_Value = STUFF(@p_Value,@p_CharIndex , 1, SPace(0) )
EXEC @p_Value = uf_RemoveNonAlphaNumericChar @p_CharIndex = @p_CharIndex,
@p_Value = @p_Value
END
RETURN @p_Value
END