Bismark I think I found the code that handles this stuff and confirmed what I guessed was probably going on.
If, for example, a phone running GrapheneOS wants to send a file to another phone running GrapheneOS, the share menu will show a send via Bluetooth option if the file matches any number of MIME types, including pictures, videos, documents, etc. This is why you had to rename files to send them.
When the receiving phone receives the file, it does a bunch of checks, but the important step is the Bluetooth app will try to find apps that claim they can open the file with the matching MIME type. If an app is found, the app is sent the file's location and the app opens the file. If no suitable app is found, the Bluetooth app just gives up, and it looks like it's supposed to display a message saying no suitable apps were found.
The Bluetooth "app" that does all of this is part of AOSP, so most Android phones would do it this way.
So, tl;dr, to fix this, all you need to do is find apps that claim they can open the appropriate MIME types that you plan on sending yourself.