If @PostCode contains a SINGLE postcode/fragment to search for, and assuming you want to search for matches STARTING with that value, try:
Where r.PostCode LIKE @PostCode + '%' AND RegisterType = '2'
If @PostCode contains MULTIPLE postcodes/fragments to search for (e.g. "AB,AC,AD") then this approach will not work and you need a way to split them out into the individual values first before matching. You can use one of the approaches I've outlined here, except the JOIN would use a LIKE instead of an equals.
Edit:
As they are comma separated, then you need to go down one of the routes outlined in the link above. There's 3 options available for passing the multiple values in : CSV (as you are), XML or Table Valued Parameter. Table Valued Parameter is IMHO the best route to go down. But assuming you stick with CSV, the end SQL would be (needs the fnSplit function):
SELECT r.PostCode, r.Email
FROM dbo.tbl_RegisterMain_Holding as r
JOIN dbo.fnSplit(@Postcode, ',') t ON r.PostCode LIKE t.Item + '%'