$filePath = $attachmentModel->getAttachmentDataFilePath($attachment);
if (!file_exists($filePath) || !is_readable($filePath))
So the things to check:
That you haven't specified any alternative paths in your config.php.
That the attachment files are in the internal_data directory in the correct directory structure.
That the attachment files themselves (and all parent directories) are readable by PHP. You mention the folder permissions, but you want to make sure the correct permissions are on the files as well. (You'll want 0666 or 0777.)