How can I protect veroboard from corrosion/ tarnishing?
Another option is to "electro-less" (immersion) tin-plate the boards when new. Mix the powder into (distilled) water, dip board, wait a few minutes, remove. Puts a layer of tin onto the copper, which will resist corrosion for awhile. Same can be said for electro-less nickel-immersion-gold (ENIG), although this is more expensive.

But it seems to me that something else is at work here. That is an extreme amount of corrosion, and if it hasn't caused electrical problems already, it looks likely to start soon. A tin plate is really only a band-aid solution, as after the tin is consumed, the copper will start corroding. ENIG would be better, but still not impervious. So this may buy you some more usable time from the board, but not solve the problem completely.

As for the corrosion itself, some common chemicals which could be contributing to this are halogen salts. Fluorine, chlorine, bromine, iodine... if any of these are present near the PCB's (even in trace quantities) they will readily destroy them.

But since it looks like most of the corrosion is near solder joints, I strongly suggest you obtain several different fluxes purpose-made for electronics work. Yes, solid rosin can be used as "flux" but there are many newer formulas today (completely different chemicals) which are much better in every way. First and foremost, acid-core solder on PCB's will destroy them. Same with zinc chloride flux. (I don't even like these for soldering copper pipes, they will corrode!) 

Try these types of flux (you may need to find a local distributor or import these): Farnell, Mouser, Digikey, etc. 


"Liquid" is just that, some are very good.
"Paste" is fairly thick and goopy, so holds small SMT parts in place.
"RA" stands for "Rosin-Activated", meaning it cleans well but is slightly more acidic. Good for "dirty" boards and parts.
"RMA" is "Rosin-Mildly-Activated", meaning it cleans ok, and is less acidic. Good for fairly new and clean boards.
"R" stands for "Rosin", meaning it is traditional rosin flux, no additives. It is least acidic, but also cleans less. Good for new parts and boards.
"No-clean" claims that it does not need cleaning.* May be a synthetic compound, not rosin at all. (ChipQuik smells like sizzling beer!)
"Water Soluble" tends to be rather strong and acidic, but can be cleaned with water.
"ROHS lead-free" can withstand the higher temperatures of lead-free soldering.
Flux Pen - many have tried these and do not like them. Try at your own risk.


Now of these, some fluxes must be removed after soldering. "Water Soluble flux" remains acidic after cooling, so must be removed. WS is also not recommened for fine-pitched parts, as it is difficult to remove all of the product, even if detergent is added to the rinse water. An ultrasonic bath may help.

RMA and RA fluxes may become slightly conductive as they absorb moisture. This is mostly an issue for high-impedance circuits. For low-impedance (simpler) circuits in mild environmental conditions it matters little, but R(M)A should be cleaned for best reliability. Always check the flux manufacturer's datasheets. R(M)A generally won't attack metals like water-soluble flux can.

Here is a video about testing several fluxes. Common Brands to look for:


Kester
MG Chemicals
ChipQuik
EdSyn
Chemtronics


Note that "no-clean" fluxes are somewhat a misnomer - all fluxes dissolve the oxidization and impurities on the metals, which can remain in the flux and cause problems with conductivity later. Always clean the board (remove all traces of flux) after soldering for best results.

The final step for PCB protection in an environment such as this would be conformal coating. This is essentially encapsulating the PCB in a plastic coating which should block all humidity and corrosive compounds from reaching it. For a one-off design though, a simple dip of the PCB into urethane "clear" would probably work just fine. If any corrosive compounds are present before coating, the coating will not stop this process and the PCB will still corrode.