I use {...BCF} and [...ECF] occasionally, and have also used [...SCO]; I use [...ICU] and [...UCU] (for Irish Chess Union and Ulster Chess Union) often.
I don't know of any best practice. I agree that the [...Elo] tag is used for all sorts of non-FIDE ratings. National ratings are one example, but I think I recall seeing converted BCF ratings (using multiply by 8 and add 600), and I'm sure I've seen ratings rounded to the nearest 100.
As for style suggestions, one thing that the pgn project did well, I think, was to have a very relaxed approach to input format. I maintain the games archive for the ICU (officially, I'm the "gameskeeper"), and I always encourage people to submit games in any legible way, and not worry about formatting. Anyone maintaining any archival database ends up reformatting in various ways anyway. It's much more useful to have a little extra side information than to have an impeccably formatted pgn file.
If the information is available, I suggest creating a new tag with the federation(s) and rating(s), and using [...Elo] for FIDE if available, and most relevant local rating if not. For example, [WhiteRating "FIDE

:UCU

:BCF:146"] (and [WhiteElo "1750"]). This is easy to enter if processing the pgn file in a plain text editor (e.g., Notepad++). Of course, it will not be recognized, and may well be stripped out, by database software, but I don't think it's possible to control that, and as far as I know the new tag above won't cause any software to fail to play the game.
Though the pgn standard doesn't have a limit on the number of allowable tags, I ran into limits when using pgn-extract with the roster option, so suggest it is useful to have a way of providing the information without exploding the number of tags.