There is this color cast over the middle of the picture which was taken on film. In Gimp I have tried going to Colors> hue-chroma, and also Colors > colour-balance and adjusting color levels and hue, color and lightness, but was not able to get the selected color cast to no longer stand out. Is there a way to neutralise the color cast completely so that the photo looks normal?
No single click operation will do the trick. The cast is not only an extra transparent magenta layer, it has also affected the underlying image colors and brightnesses. You can start by making a BW image which has plausibly right brightnesses. GIMP has Color > Components > Mono Mixer for this. It's very clever idea because it even allows negative weights.
In the next image the filtering uses the fact that in your image the blue channel is quite good although not perfect. Fortunately the cast has not destroyed details below so weighted linear mixing can make some improvement.
The top layer is filtered. There's also a couple of originals left for future steps and a spare.
The BW version on top has blending mode Lightness. It sets the ligntness for the next layer which is the original filtered with Channel Mixer. I guess no perfect filter settings exist, but at least this is less magenta than the original:
You can apply curves to the BW layer for more contrast. It doesn't exaggerate color saturation like inserting contrast to an RGB layer. But the errors can still become more disturbing:
My opinion is that you should make selections and paint right colors on the areas in the 2nd layer. Essentially you recolor the image. That treatment is applied to the sky and the sea. Sorry for coarse selections:
I selected with lasso at first the sky, picked the color from the non-magenta corner of the original and filled the selection with the paint bucket. The sea got the same.