I know how frustrating it is with the housebreaking - I've owned some dogs that were a challenge to housebreak. The best thing to do I've found, is to use the crate. It only takes one instance of eliminating in the wrong area to make a habit, so the crate is crucial for breaking a bad habit. For example, Guinness, my six month old Saint Bernard, enjoys lounging on our front porch. He's completely housebroken in the house, but a few weeks ago he had an accident on the steps of the front porch. I wasn't there when he had the accident, so there was no understanding in his mind that it wasn't acceptable. That accident cost him his freedom of being on the porch on his own, because the odds were great that he would pee again on the steps. A couple of days later when I was walking him off the porch to go do his business, he stopped and started peeing in the EXACT same spot of steps he had had his accident. In his puppy mind, he'd peed there before so it was okay to do it again. Because I was right there I could give him an instant correction and the habit has now been broken.
So, the best thing to do would be to crate Brutus when he's in the garage, taking him out to do his business, but putting him right back in the crate. I would do this for a week and then, test him being left out of the crate, with you in the garage so you can give him an instant correction if he does pee. As for his whining in the crate? The best method I've found to stop the whining is to do the following:
1) Get a pot with a lid.
2) Put Brutus in his crate and walk away so he can't see you.
3) The minute he starts whining, from your hiding spot start smashing and clanging the pot and lid together yelling "NO!"
4) Brutus will probably be startled and stop whining for a second, but the second he restarts, clang the pot and lid, yelling "NO!".
5) It usually doesn't take too long for the pup to make the connection between his whining and the ruckus going on. Because he can't see you, it makes it a very powerful way to correct the whining.
Best of luck!