Having had a chance to take a look at pas7k's career mode data files the best I can say at the moment is that this is going to require more investigation. The game seems to have inserted an extra game into the schedule, which looks as if it is intended to be a replay but the underlying structures do not fully support the handling of that situation. It does appear that this only applies to the manager's team, since there are other fixtures in the same round decided by penalties, as you can see:
FIFA 10 Manager Mode Fixtures/Results from pas7k's career data
To get to the bottom of this I will need to reproduce this situation such that I can see the state of the affected tables (team_lookup and fixtures) in the manager mode data file both immediately before and immediately after the extra fixture is added. However, at the moment my concentration (in what little free time I have) is on fixing the team experience bug in such a way that my son and I can carry on using our existing saved game files (I have already proven that I can correct the field, but it means changing the shape of the playerstats table in all existing saved games) and I'm unlikely to be in a position to pursue this for the next few days. If anyone else can magic up a saved game immediately before playing a drawn cup game and another from immediately after then please feel free to email me with the details and I'll try and squeeze in a quick look at it.
FWIW the short answer to 'can we fix it' is probably no.
For those that are happy delving into the technical details, here's why - the game structure in manager mode is controlled by the data in three tables. The fixtures table holds the details of the individual games and their scores, the team_lookup table maps the tournament structures round by round to the teams and keeps track of the standings within each stage, whilst the rtsg table holds the details of all tournament structures. The latter table is only updated by entries in the manager mode data (eg. to handle friendlies), whilst the other two are stored in full.
The fixtures table includes a field num_games_left_in_group, which does exactly what it says on the tin and decrements for each fixture in a round of a tournament. For a two leg knock-out this value will be 2 for the first leg and 1 for the second leg, and presumably the game uses the value of 1 to identify when a round (and possibly the whole competition) has been completed. Unfortunately the first leg of pas7k's replayed FA Cup game still has a num_games_left_in_group value of 1, whereas the newly created 'second leg' (replay) has a value of 2 in that field, which I suspect is the wrong way around for this to work as expected and results in what he has reported - a replay game where the winner has already been decided and placed in the next round whatever happens in the replay itself.
The reason that I say this may not be possible to fix, is that by the time we get our hands on the data file after the drawn cup game I suspect that we will find that the team_lookup has already been updated to move one team or other into the next round (and I've no idea on what basis it chose Peterborough rather than Barnet) and the fixtures table changed accordingly. Obviously it may be feasible to undo all of that and make the second game meaningful again but I would need to experiment with an 'after' saved game to see if that is even possible. Fortunately because of previous (successful) attempts to write code to manipulate the fixture list to minimise congestion, I already have the code to navigate around the fixtures structure and modify it but the fun part will be identifying the problem situation and figuring out exactly which entries will need to be changed to fix it.