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...