08 Individual relay drive by (TPIC6B595)

Each time you update the register, you must update all 8 outputs because that is how shift registers work. To change 1 output without disturbing the other 7, your code must remember the state of the other 7 pins and combine them with the updated pin before updating the register. There are several ways to do this. One way that is quite easy is to have a global byte variable which remembers the state of all 8 pins. When you want to change any pin, your code must update that global variable and then send the updated variable to the shift register.