Given person B only has the public key, file, signature and the hash, would verifying the signature using the public key be sufficient to prove person A signed the actual file?
Person B does not need the hash. If they get it they can use it for debugging purpose or to abort verification early, but they should not trust it. In the following I disregard any hash person B may have received.
Person B shall hash the file, and check if that hash, the public key, and the signature, verify. That's supposed¹ to prove person A signed the file.
Hashing is so much part of signature verification that's usually stated as: Person B shall check if the file, the public key, and the signature, verify.
An exception to the paragraph above is when, on top of a signature system already suitable to sign a message/file of any length using a hash $H_1$, it's added another layer of hashing with a hash $H_2$. In this case, it would be said: Person B shall hash the file with $H_2$, and check if that hash, the public key, and the signature, verify (implicitly: with the hash function $H_1$ applied to the result of $H_2$ as part of the signature verification). Such composite hashing is sometime done for performance reason, because $H_2$ is by design faster than $H_1$; or/and because $H_1$ is performed by a device (e.g. a Smart Card), and $H_2$ is performed by another (e.g. a computer using the Smart Card).
What hashes and algorithms are (suitable for) this?
From a theoretical standpoint, signature needs a hash algorithm that's collision-resistant (implying second-preimage resistant), and of width appropriate for the signature system under consideration.
If that width is at most 512-bit, SHA-512 appropriately truncated will do. For arbitrary size, there's SHAKE256. For better speed, there's Blake2.
From a practical standpoint, the hash is typically specified by the signature system or it's parameters, and that specification is often embedded with the public key in the public key certificate.
An example of signature algorithm and hash in common use is ECDSA with curve secp256r1 and hash SHA-256. Another example is Ed25519, which specifies algorithm, curve and hash (note Ed25519ph is like Ed25519, except with the dual hashing in the exception above).
¹ There's no thing like absolute proof: perhaps the public key is not that of person A; or person's A private key was stolen; or their PC was under control of a malicious actor so A wanted to sign something else entirely; or the signature system or the hash is broken…