Hi Matt,
Sorry for being "late" - I only just saw this thread.
I have extensive experience with exactly this problem - in exactly the same circumstances - using Progress 9.1D. However our sending and receiving platforms were Sun servers.
Tom's advice to go up to 9.1E - or better to 10+ is perfectly correct. However, I'll explain your problem so that maybe you can live with it a while until you can upgrade.
The BI file holds all details about DB activity during transactions. At the moment when you command Progress to switch to the next AI file there may be no transactions currently active - or there could be one, two - or any number. When the AI file is copied to your other server and rolled-forward, the DB is brought up to exactly the point when the AI file switch-over happened. Therefore, however number of transactions were active on your production system at the moment of the switch - then the same number (of course) will now also be active on your stand-by server.
If you look at the DB log (.lg) on the stand-by server, as each AI file gets rolled-forward Progress will put a message in the log saying that "x" transactions are "in flight" (which might be zero - but also might not be).
If (IF AND ONLY IF) Progress reports that zero transactions are in-flight may you truncate the BI file on the stand-by server! In that situation the BI file does get truncated, of course, but the DB itself does not get modified in any way - and (importantly) the date/time stamp on th DB remains unchanged.
HOWEVER, if one or more transactions are "in flight" then you must not truncate, because doing so will cause Progress to roll-back all in-flight transactions. That makes your stand-by DB different from your production DB - and the date/time stamp will change. That makes your stand-by DB useless because you can no longer apply further AI files (as you found out).
If your production system is busy then the odds of there being zero in-flight transactions at the time of any particular AI file switch are extremely small. But if the system is fairly idle then you have a good chance that there will be no transactions in-flight.
We put logic into our scripts such that if the time was (about) 2am it would check and if the roll-forward that just finished had zero in-flight transactions then it would do an automatic truncate - otherwise skip it until the next night.
I hope that helps.
Ron.