If you're familiar with hex editing, I guess the font editing shouldn't give you too much trouble.
Firstly, The Barbarian's graphics reader is very useful for the editing as it will help you in locating the characters. Make sure you have it at hand before starting to edit the fonts.
Each font file uses the same basic construction. The first eight bytes are nothing important, so you can just ignore these. Now after this, a table consisting of 255 bytes come, with valid values being 00 or 01. This "table" is used by the game to know which characters are used by the font file. If you change e.g. the last 00 byte before the row of 01 values start into 01, it will mean that one more letter is added to the "used" part of the font and as the character you enabled is before any other character, each character value will be one less (messing up the game texts). The position of the character in the table matches the value of the character itself, so if you put ? into the 134 slot, you will get the character displayn in the game by using the value of 134 in the lib files.
So anyway, incase you understood something about what I explained about the table, you might also want to know how to edit the actual characters.
This data starts at $108, and the very first byte tells the height of the letter you are editing, followed by a separator (00) and then the width of the character. After this, some empty space follows and the actual character graphic starts. I don't know the exact amount of empty space after the start needed, which is why I always copy over some pre-existing characters and start editing them (so if I want to do ?, i copy over ? and modify the character to add the ^ on top of it to make things easier. In the example above you would need to shift the letter one row lower down, so you just check the width value, add one more to it and then add as many 00 bytes as the letter is wide to the start of the file.
Now the most difficult part is acutally positioning the letter into the correct place. Firstly, you will need to find out the actual character code of the Portuguese letters so you know where they are to be added. Then you will have to find this very value from the table and change the 00 to 01 (or incase it is already 01 you don't need to change anything).
Assuming the value was 00, each letter that had a higher value than the letter you are going to add have now shifted their position to one less as there exists no graphic data for the new letter you enabled some moments ago. You will then have to look through the file and try to find the letter that took the slot of the letter you are going to add. In certain fonts you can see it directly in the hex editor, but the best way of doing it is going to a place where you think it might be when you check how deep you are in the file (scrollbar) compared to where the letter is in the actual font.
You should start The Barbarian's Graphics Reader by now and make it scan the game if you haven't done it yet. Once you've done this, search for the start of a letter (some small hex value followed by a 00 byte and then another small hex value, that is the height and the width) and start dragging over the hex values from the first byte (height), until you reach the height value of the next letter, stop dragging here and make sure you don't include the height value of the next letter and copy the values. Then just paste them instantly after the last letter ended. Now go to the Graphics Editor and click again on the font file you are editing and it will update. You should now see that some letter has been duplicated. Whichever letter it was, this tells you where you are in the file and then you can continue searching for the correct position by using this technique. Do remember to delete the duplicate letter after each try, otherwise your font file will be seriously messed up.
Eventually you'll hit the correct spot, and you'd better write down the hex address or you'll lose it again soon

. So when you have made it this far, you should now attempt to find an already existing letter that looks very much like the one you are going to add, like using ? if going to do ? and then copy it over to the place where the letter you added should be at (using the address you hopefully wrote down earlier) and then do the neccessary modifications.
Generally, each font file has about four colors at maximum and you shouldn't need to use any other colors than once that are already used in the character you're editing. 00 just means transparent and all other values in the character are somekind of colors. Playing around with this and checking the result in the Graphics Reader will eventually make you understand how the colors work.
If you don't feel like doing that, well I did say I will get around doing the fonts someday, but this and next week are full of exams so I'll not be able to do any work that requires long concentration. So if you can't understand my notes (I'm terrible at explaining things

), I'll create the font sometime later.
Oh and if something isn't clear, just ask away!