>Have done all of that and am still at a loss. :(
Don't remember exactly - do you do a tableupdate and requery between the insert and the scan?
Another thing I see in your view - wheretype is 3. There could be something weird (and we're looking for weird here, right?) if you do two replaces on the same record without tableupdate()ing meanwhile. Because, in that case, what is the oldval() on the record you just inserted?
Also, optimistic buffering - row (3) or table (5)? If you're row-buffering and move off the record, an implicit tableupdate() may happen and then the bets are off - you may check aerror() several times to see if anything happened.
Try to change the wheretype to 1 and see if this still happens.
If none of this gets you ahead, I'm out of hints for today :).