Si queres hacerlo desde delphi, podes valerte del evento OnMouseMove para superponer la imagen que te interese de acuerdo a la posición del mouse. Claro que primero necesitarias un algoritmo que te diga en en que provincia queda cada pixel. Al detectar un cambio de provincia, ocuparía devolver la provincia anterior a su color "normal". Si se trata de colores sólidos, esto también puede conseguirse con floodfill del canvas, creo que de manera mucho mas eficiente que superponiendo imágenes.
Hasta luego.