While I'm not going to download 2.92 to double check, when we look at your mesh, we can see some obvious problems with it, that could conceivably lead to miscalculation of normals, and that need to be fixed even if they're not responsible for your problem.
Start by enabling "face orientation" in your 3D viewport's overlays dropdown. We can see that some of our faces' normals are pointing the wrong way:

Where it's blue, the normals are facing more or less toward the viewport "camera"; where they are red, they are facing more or less away from it. Everything should be blue. Where it transitions from blue to red, you have the potential for a zero-length normal, which might turn into NaN (which is generally something you get when you divide by zero.)
Now, let's use a "select non manifold" operation, and then in the operator box, disable boundaries. After hiding some stuff so we can see, we're left with the following selection:

What's happening there? The ring of selected edges are edges that connect three different faces: the tube running through this plane is welded to the plane. This is another case where there is no reasonable way to calculate vertex normals, and where we're likely to run into issues with division by zero. For reasonable normals, you need a manifold mesh, and the main characteristic of that is that each edge connects two and only two faces.
Let's look at one more place, someplace that looks like a plane, but apparently has a bunch of overlapping geometry. That looks suspicious to me. Let's select a vert and pull it away:

Huh, it leaves a triangle connecting to its old location. Here we have a triangle with two of its vertices in the exact same location. That means that the face doesn't actually occupy any area: it is a line, not a surface, and because of that, you can't calculate any kind of normal from it-- the normal is a plane, not a vector. This is another situation where we might expect NaN normals.
How do we prevent this? We don't make geometry like that to begin with. We don't have edges that connect three different faces. We don't make zero area faces. You can see that we can use "select non manifold" to identify problem areas, but each of these problem areas require individual attention. You might get some use out of "merge by distance", but it's just as likely that merge by distance will create as many problems as it solves, unless you use it very judiciously.
This particular mesh looks to me like it was probably made in a different application, because it's all triangulated, with ripped edges. If that's the case, I probably couldn't tell you how to get that application to export decent geometry-- both because I don't know what application it is, and because I don't use other applications to make my geometry anyways, so I'm not familiar with them.