I think you have done everything you can do for this dog to give him a chance.
I agree with what others have said here. I think you are looking for an OK or reassurance that you aren't taking the easy way out, or are being selfish instead of looking out for what is best for everyone.
I believe you have already fufilled any moral obligation way above and beyond the call of duty. Just picking the dog up in the first place was an act of extreme kindness and humanity. I think now it is the humane thing to do to give this dog peace. Here's the only options I can see otherwise:
1. Give him away - as others have agreed, not morally responsible given his issues
2. Find a shelter to take him - as others have said, unless you can find a sanctuary for aggressive dogs (and you have already looked..), he will just be refused or euthanized.
3. Keep him - in order to keep him, with his issues you would have to keep him penned up in a small kennel with a top over it in order to keep your livestock and other pets safe. That is SOOOO not fair to this dog either.
4. Euthanize him - a gentle and humane way to solve this issue given the other options. I have to agree that this options is the right thing to do, unfortunately.
The dog totally lives in the present. He will have no understanding that you are taking him in for that reason. He'll just know a small prick of a needle, and then will drift off to sleep. You have given him probably the best times of his life since you took him in - good care, good food, etc. Now it's time to let him go out peacefully.
Hugs to you - and kudos for actually caring enough to worry if you are doing the right thing!!