Unfortunately the mechanism Linux uses to allow one to monitor files is inotify, which does not provide enough information to extract useful data: you only get the file name and the action that was done.
I've tried using something like this:
sudo inotifywait -mr somedir --format "%w%f" | while read file; do echo -n "$file => ";lsof -b $file; echo ""; done
This listens to inotify events on the specified directory and for each event it runs lsof to try to catch the process that touches the file. Unfortunately for most accesses that I tested (such as using an editor to write to a file) the LSOF command is just to slow and doesn't manage to catch the offending process.
If your processes do some more intensive IO on the problematic files, then your mileage may vary. Good luck.