We experienced a situation in batch where a constituent ID was replaced by a fund ID in the batch and upon posting of the batch, the constituent ID was then changed in the database. If certain fields could be marked as view only, it would prevent this from happening.
Couldn't you just hide that field? Or are you entering IDs instead of names when batching gifts?