First - you are on the right track using the ampscript on the landing page. It's easier that way versus trying to build out a soap call.
Provided that you are not adding to a list with the Triggered Send interaction - your syntax should work.
The error "no valid subscribers" means some data is not matching up in the TriggeredSend Data extension or the List you are adding to (nullable value in a non-nullable field, wrong data type like the DE has a number while the data has an alpha-numeric value - etc). You did a great job, because it seems you have isolated it to the Member_ID value.
I would try to first start by simply try to rename variables the variables you declared in the ampscript.
I've run into a problem where the variables could already been (what seems to be "secretly") declared as pre-defined system variables or already defined as an attribute. So the script could essentially be getting confused between what you are trying to call - the attribute/system variable called "Memeber_ID" or the variable called "Member_ID" in the ampscript which is housing the data you got from the URL.
Try This:
VAR @MemID
SET @MemID = RequestParameter("Member_ID")
Then in your build:
SET @ts_attr = CreateObject("Attribute")
SetObjectProperty(@ts_attr, "Name", "Member_ID")
SetObjectProperty(@ts_attr, "Value", @MemID)
AddObjectArrayItem(@ts_sub, "Attributes", @ts_attr)
You might want to also consider doing the same for @EmailAddr
since %%EmailAddr%%
is definitely a predefined system attribute.
Not saying it's the answer, but it might be worth a shot before you start dissecting the process.
Best Answer
Short answer, yes. You'll need to: