This time, case 1 is the odd one out - but for that there is a thread in the FAQs:
only replace the "xyz" with "ft %artist%".
Case 2&3 can be treated in 1 go:
An Action of the type "Format value" for TITLE (or Convert>Tag-Tag)
Format string: $regexp(%title%,(.*?) (\(.*\)),$1 (ft %artist%) $2)