Allora, scrivere due volte l'attributo class è semplicemente SBAGLIATO.
La dicitura corretta è quella di inserire più classi nello stesso attributo separate da uno spazio.
Detto questo, a mio avviso hai qualcosa nel css che, avendo una specificità più alta, viene a prendere il sopravvento sulla classe del colgroup.
Per esempio, se scrivi
table.difensori td {}
.col1 {}
La seconda regola verrà ignorata, perchè la prima ha una specificità maggiore: ma se scrivi
table.difensori td {}
table.difensori .col1 {}
Ora la seconda è più specifica della prima, e quindi verrà presa in considerazione.
Puoi provare a commentare con /* */ tutte le parti di css che non hanno a che vedere con quella tabella (meglio ancora sarebbe se tu mettessi quella tabella da sola in un file a parte) in modo da verificare che non sia qualcos'altro dell'html o del css a darti fastidio.
Naturalmente, do per assunto che HTML e css siano perfettamente validi...