maybe one of these two settings in your samba smb.conf file
dos filetime resolution
Under the DOS and Windows FAT filesystem, the finest granularity on time resolution is two seconds. Setting this parameter for a share causes Samba to
round the reported time down to the nearest two second boundary when a query call that requires one second resolution is made to smbd.
This option is mainly used as a compatibility option for Visual C++ when used against Samba shares. If oplocks are enabled on a share, Visual C++ uses
two different time reading calls to check if a file has changed since it was last read. One of these calls uses a one-second granularity, the other uses a two
second granularity. As the two second call rounds any odd second down, then if the file has a timestamp of an odd number of seconds then the two
timestamps will not match and Visual C++ will keep reporting the file has changed. Setting this option causes the two timestamps to match, and Visual C++
is happy.
Default: dos filetime resolution = False
dos filetimes
Under DOS and Windows, if a user can write to a file they can change the timestamp on it. Under POSIX semantics, only the owner of the file or root may
change the timestamp. By default, Samba runs with POSIX semantics and refuses to change the timestamp on a file if the user smbd is acting on behalf of is
not the file owner. Setting this option to True allows DOS semantics and smbd will change the file timestamp as DOS requires.
Default: dos filetimes = False
dos filetime resolution seems promising.. perhaps MPLAB does sometime similar to VC++