Multiple 3 Way Switch wiring
Whomever did this fundamentally misunderstood how three-way switches work. A three-way switch changes which wire (in your case the white/brass screws) is connected to the black screw. One of the two brass screws will always be hot. We call the wires connected to them traveler wires.

There's no easy fix with the existing wires here because they tried to make one cable do the work of two. I put in a three-way last year and my setup is

Line (hot and neutral)
Load (2-line cable going to my fixture)
3-line cable running between the switches (two travelers and the switched hot)

That's all going into what is your B switch. In other words that's three cables where you have two. The good news is the 3-line cable can still be used. The bad news is you really need a 2-line cable run between B and your fixture. I suspect they tried (and failed) to use the unused white wire to do that. The problem is that you can't run a multi-way without two travelers.
Per the images you've added here's how I would fix this

Go buy some equivalent gauge metal-clad (MC) cable. I can't tell if that's 12 or 14 from the jacket so use a wire stripper to confirm size. You'll need two cable clamps as well. I think both boxes are a combo 1/2&quot; and 3/4&quot; but measure a knockout to be sure (1/2&quot; clamps are sometimes confusingly labeled as 3/8&quot;). It's also a good ideal to buy some cable clamps to secure it to the wall
You need to bond your metal boxes. Buy some ground screws (they're green) and add some wire between the box and your ground nut. Some places have ground pigtails if you don't have enough spare ground wire.
Run your MC cable between the B box and the middle box. You do not need to remove any existing cable. Knock out a hole in each box and clamp the cable
Inside the box, disconnect everything except the ground (hopefully you bonded in step 2)
In the B box add your MC black wire to that black wire nut for the other switch. Add the MC white to the white nut.
B will now hook to the 3-line black screw, and the 3-line white and red go to the brass(white) screws (order does not matter). Hook the ground wire up as well. B is now done
Rewire C to swap the black and white (this helps the sanity of wiring). Black is now on your black screw.
In your box hook the B and C 3-lines up as such: C-black to MC black, C-red to B-red and C-white to B-white. I would mark the 3-line whites with a black sharpie so you know it's a traveler and not a neutral.
The 2-line is your load to the fixture. The white from this goes to your MC white (neutral), and the black connects to the B-black (switched hot)

When this is all done what you're doing is piping your hot to C, creating two proper travelers back to B, and hooking the fixture to the switched hot from B.