Personally, I think Cavendish was the spy as the one who passed information to Olimpia, that dosen't mean there isn't a second spy, someone who passed information to Cavendish so she could send to Olimpia. Baynard is an option, especially if he resents the Spire for the treatment of Grimm. As for Rook, I think he is just a coward.
As for why the silkweavers attacked Grimm and Baynard, it's too random to be sure. Could be that Cavendish sent them to scout/clear the tunnels so the Marine attack on the cristals factories (vataries? don't remember the word used right now). And they just got out of her control with the distance and went feral. Or it could be a plot so Baynard could take Grimm to the aetherist house and mark it for the marines who tried to kill him.
Too few information to do anything but especulate..