Good question! I've given a lot of thought to this over the years! I used to be really upset by the inconsistency on Giles's part with regard to both relationships, and because I adore Giles so much I was looking for some answers which would make me feel better. Here's what I've come up with so far:
In the beginning, Giles was essentially amused albeit slightly unsure of the relationship between Angel and Buffy. All things considered, I think he approved, at the end of the day. He didn't do a whole lot of questioning, after the initial "can any vampire ever be good, or trustworthy," once Angel had proven himself both good and trustworthy. He may have had plenty of doubts but it just wasn't something he really dwelled on aside from the occasional quip or two, until "Surprise." I think for him, the notion of Buffy dating anyone was inherently unfavorable in the sense that it was a waste of her precious time and energy, but dating Angel was at least something she could do while directing her focus toward the mission. Overall, it was good for her, or good "enough"--from his perspective--because it meant Angel would be beside her every night, protecting her. Certainly, there was no fear that Angel would start behaving like, well, a vampire.
When Angel returned in season 3 in the aftermath of his destruction of Giles's life, his anger is directed of course toward Buffy initially, for keeping his return a secret. But I really think that after he recovered from the shock of the vampire's return and all it entailed, it was not difficult for him to see Angel as an entirely different being from Angelus. The question of course is "why?" Surely it should have been the most difficult for Giles--even impossible. But I think after Buffy described what had happened at the mansion right before Angel was sent to hell; after she described what she had to do, and how Angel had been himself right before that--I think Giles felt empathy and grief for Buffy. Having just lost Jenny, he was able to relate to her loss in such a way that he could forget that she mourned for the same person who had killed his own love; and in order to rationalize this sentiment for himself, he needed to quickly accept that Angel and Angelus were two different entities. Essentially, Giles's love for Buffy and his need to empathize with her in the wake of the two deaths is what propelled him to begin to accept Angel and see him as (perhaps) just as much of a victim as the rest of them. It seems a bit radical from our perspective, but the grief made it a necessity.
So by the time Angel was back in the fold, helping out, Giles was ready to accept him. He would never see him the same way of course, but ultimately he wasn't going to begrudge Buffy an opportunity to reunite with her lover, especially after what had just happened to him. As long as, you know, nothing "Happened" again. 😱
On to Spike. The fascinating and simultaneously frustrating thing about how Giles treats Spike is, at least from my perspective, that he is more tolerant and patient with the (chipped) vampire in season 4 than he is when Spike is truly trying to help in later seasons. This is something I've always had a lot of difficulty accepting, but I've been working through it! In season 4, Giles sees chipped Spike as an opportunity, once he gets accepts the fact that Buffy will not be killing him. This, to me, makes perfect sense. It's clear that Spike is willing to help the gang out for the sake of his own hide and using him for this purpose is a good, resourceful move. (Never mind the fact that by the end of the season they discover that he was playing both sides for a little while; hindsight is 20/20 and besides, he does help them in the finale--as predicted--for the sake of his own safety from Buffy!) What's odd to me is that Giles develops a bit of a rapport with Spike in this season that quickly disappears once Spike basically makes himself omnipresent in the following season.
Here's how I rationalize it: in season 4, the terms are clear. For Giles, Spike is still "evil" but he is helpful anyway. Hence, it is easy to read him; because he is predicable and under control it is possible to keep him at a distance while utilizing him, and Giles can relax around him. In season 5, once Spike makes his feelings for Buffy known, he is no longer "in his place." To Giles, he's a threat. He is persistent. Unpredictable. What will motivate him, now? What will he do if he doesn't get what he wants? The fact that this vampire now wants something that the gang is refusing to give him, (Buffy), might make him seem quite a lot more dangerous from Giles's perspective. Then we have an episode like "Crush," which seems to support that particular concern. So now instead of knowing exactly where they all stand with Spike, Giles has to wonder if he will be helpful if what he desires is unfulfilled. Or, worse, will he be so upset that he'll transcend the captivity of the chip and attack them? Kill Buffy?
So, this goes on for a while, and then we have "Intervention," the game changer. Spike has no reason to think that Buffy will ever respond positively to him yet he endures torture for her sake, and for Dawn. By "Spiral," Giles accepts that Spike can be trusted; if he didn't think so he wouldn't allow them to leave town with him at the wheel. The fear that Spike's help will only be given if Buffy gives him what he wants is starting to become more and more unfounded, as time goes on. Then things really get turned upside down. Giles thought he had Spike pegged, (do things only in the interest of not being staked, do things only in the interest of a relationship with Buffy), but now, in the beginning of season 6, Buffy is dead. And where is Spike? Did he leave town, or try to kill them all, now that there's no chance that what he wants will be fulfilled? Nope. He's still fighting by their side. Taking care of Dawn.
Giles's departure to England speaks volumes about how he feels about Spike. With Buffy dead, Spike and the Buffybot are, let's face it, "the slayer" that presides over the Sunnydale hellmouth. They are the ones most actively and effectively keeping the forces in check. We know he doesn't expect Willow to do very much in the way of magic; he's always the first to tell her to stop. So by leaving his sunnydale "family" in the hands of Spike and a robot, there was quite a lot of trust there. And yet, when he returns, there's so much disapproval. Disdain. So much "Spike is a horrible creature who's not to be trusted---Spike, save me!" I don't think it's because he's worried about whether Buffy will have a relationship with him. Or if it is, how inconsistent. He wasn't worried about Buffy/Angel once he knew about the nature of the curse, and how easily it could be removed. With all Spike had done, and his fancy chip, how could he have been more disapproving than he was with Angel, especially considering who Angel was, to him? I think it's because he's tired. His spirits are crushed and he doesn't have very much faith left. When Buffy reunited with Angel, a mourning Giles was happy for them. The idea of Spike with a reluctant Buffy just didn't have the same appeal. This vampire couldn't convince him of much; he'd seen too much and lost too often. That's the best I can do...
Then we have season 7. Here's how I rationalize Giles's actions toward Spike: a nice, little plot device. As someone mentioned in another thread, season 7 was not loyal to the die hard fans who expected character consistency. There was so much that was written for the "shock and awe" effect. "Whoa. Buffy's watcher betrayed her. Whoa." I think clear evidence of this is the fact that they omitted the scene in which Giles admits that Spike is innocent but likens the necessity for "taking him out" to the situation with Ben. It would explain so much. Everything, really. So for that reason, I can't really take season 7 into account when analyzing all this.
Anyway, that's how I look at Giles's treatment/perception of both vampires throughout the series! Sorry for the freaking essay guys, I just realized how long this is!