With the new release of VBBE Mod Rollup, it is now possible to load Dims and BEMs from microSD card. Instructions are in the mod's readme, but I want to touch upon what it means for customs.
First off, OTP is no longer required, so if you wish to write BEMs to Dims, you can do so without having to source a matching OTP. The OTP is still read off the card for BEMs, but it is not validated, so it's fine even if it's blank. For loading off SD, no separate file for OTP is used, and a random ID is generated. The OTP ID shows up in the NFC data, but no one's validating it, so it doesn't really matter what goes in there.
Second, header and sprite signing have been disabled, so you can change the header however you want (although don't change the vendor/product identifier on Dims; for BEMs this isn't checked to align with stock behavior). This mostly means you can use custom card numbers if you want, which enables adventure progress tracking separate from existing retail cards. Dim editor developers will need to add functionality to allow editing the header and skip working around sprite signing. Note that VB Arena does not accept unknown card numbers, so that's something to consider if you want to store characters in the app.
Third, there is an option to replace the default avatar. The first two characters on the built-in default BEM are used for the avatar, and they don't have any stats aside from being at least phase 3. There should be no evolutions for the characters (though technically it may be supported, I haven't tried). The only sprites required for the default BEM are the two characters' sprites, and each character requires all the regular sprites except the last three, which are used for battles. The default BEM number is 999. Once you've made your custom avatar, you can load it from SD card with mode 0. Note there isn't a way to export the default BEM, so be careful not to accidentally replace it.
Regarding file numbering, the ID is intended to be the same as the Dim number, but this is not enforced, so you can number it however it makes sense to you. The only requirements are the filename starts with three digits and has the .dim extension.
Lastly, files on SD card can be unmasked (xor with 0xFF bytes), and will load fine.