Você pode corrigir isso com um script Perl trivial:
#!/usr/bin/perl
use strict;
my $progname = $0; $progname =~ s@^.*/@@;
# accept path of bogued "link" file on command line
my $file = shift()
or die "$progname: usage: $progname <file>\n";
my $content = '';
my $target = '';
# read the bogued file to find out where the symlink should point
open my $fh, '<', $file
or die "$progname: unable to open $file: $!\n";
# parse the target path out of the file content
$content = <$fh>;
die "$progname: $file content in bogus format\n"
unless $content =~ m@^link (.*)\r?\n$@;
$target = $1;
close $fh;
# delete the bogued file
unlink $file
or die "$progname: unable to unlink $file: $!\n";
# replace it with the correct symlink
system('ln', '-s', $target, $file);
Solte o script em um arquivo, por exemplo fixlink.pl, invoque-o como perl fixlink.pl /path/to/bogued/symlink
e ele lerá o destino fora do arquivo e, em seguida, substituirá o arquivo por um link simbólico para esse destino.
Naturalmente, isso não faz nada para resolver o que realmente está causando o problema, mas deve, pelo menos, tornar a vida mais simples até que você consiga descobrir a causa e corrigi-la.