Mi sa che stai facendo un po' di confusione, inserendo un po` troppe cose.
Anzitutto occorre mettere ordine nel codice HTML, ed usare correttamente id e class:
gli id devono essere unici nella pagina, mentre le classi possono essere ripetute.
Hai una pagina, con una serie di immagini, alcune delle quali sono incluse in un link.
Suppongo anche che tutte le immagini incluse nel link devono comportarsi in un dato modo, mentre quelle non incluse in un altro.
Quindi occorre lavorare sui selettori:
img { ... } tutte le immagini
a { ... } tutti i link (tag <a>)
a img { ... } le immagini incluse nei link
a:hover img { ... } le immagini incluse nei link (situazione :hover)
Nota che l'ordine e` importante, dato che definizioni successive sovrascrivono quelle precedenti: quindi si devono definire prima le cose generali, poi le particolari.
PS: non conviene usare per le classi e gli id nomi gia` usati dal DOM, tipo link: in qualche browser potrebbe creare dei conflitti.
Come ho gia` detto, non conviene cambiare le dimensioni dei bordi all'effetto :hover: il blocco si ingrandisce e tutta la pagina ne risente: se usi un bordo nel caso :hover, devi definire lo stesso bordo nel caso :link, eventualmente con un colore uguale allo sfondo (oppure trasparente), in modo che non si veda.
Non ti conviene lavorare sui bordi del link e sui bordi dell'immagine: questo raddoppia i bordi e crea effetti sgradevoli. Decidi quali bordi vuoi usare, e annulla gli altri.
Il mio consiglio e` quindi di provare a reimpostare il tutto partendo da zero, e inserendo via via le proprieta` che ti servono: il tuo codice e` troppo sporco per poterci lavorare.