I don't think there's a way of keeping other cats from crapping in your garden... That's where all cats do their business - in neighboring gardens and never in their own... Something to do with marking their territory...
As for spraying your couch, I'd give the cleaning bill to the offender's owner, as I, obviously, didn't invite their cat to do it and they ought to do something about their cat's mental state anyway