Quin - do you have a backup solution in place which would allow you to restore your database at a specific date, to an alternate location? If so, you could restore the data and go into your sales order batches and confirm which documents were there on a specific date.
For future incidents, you could go into the batch and export it, or print a sales order summary listing, so you have some traceability. You would have to do this fairly regularly for it to be effective.

My suggestion would be to rather invoice the document immediately on the 1st of the next month (change the date and period when invoicing), and then place the invoice on hold, (tick in top left corner of invoice) so it doesn't update with the rest of the batch. Remember to change the date and period back afterwards. This will reserve the stock correctly as well. You can then use the "On hold assistant" at the beginning of the next month, take all the invoices off hold, and then have the users update their invoice batches. A Sales order is an "All Users" document, so there is no traceability. Invoices are user specific, so if they are deleted, you can see which user is responsible (even though you won't see the details for that invoice anymore). If you need to allow your users to place documents on hold, go into setup ... customer ...documents. On the invoice tab, drop down to each user and then select the "Allow On Hold" function for them.

Another option would be to create a User called "PI". The staff could then "Jump to" another user and capture the invoice in next month there, without updating the batch. They jump back to their own user after that and carry on as per normal. You can jump into the batch and print or check the documents, before updating at month end.