Cuando comienza el Do While hay un pequeño problema. Tenes 2 if dentro de la celda que le indican 2 bgcolor distintos...
Hacé 2 cosas, saca el if de dentro de la celda y usa variables para guardar el color del background.
creaste una variable giorno1 y sin embargo estas poniendo en todos lados [day1-primog+x]
yo te separe el codigo de la celda, lo que deberias ver es reacomodar los 2 if que tenes para poner en una variable el color que deberia salir en pantalla.
Código:
giorno1 = day1-primog+x
Do While giorno1 <= (dayoff+7-ultimog)
If day(giorno1)=day(now()) and month(giorno1)=month(now()) then
response.write "bgcolor=""#D6EAF5"""
End If
If day(giorno1)="25" and month(giorno1)="3" then
response.write """#3399CC"""
End If %>
<td bgcolor="<% =color %>">
Espero haber ayudado! Saludos!