The bubbles.lua script goes on the speech bubbles, set it always active, physics off.
The speeches.lua script goes on the text decals, set it always active, physics off. (probably easiest to set this in the .fpe file!)
Scale the bubbles in the editor so they look right placed next to the character, then scale the text decal so that the text fits nicely in the bubble.
** Make sure you name the entities different names! **
Copy the code from the ai_neutral_sb.lua script as you need it into your character scripts, basically you need to set a 'speeches' list similar to the one there, in which you specify which bubble to use (by name) and which text decal (by name) to put in it plus the offset values to make them appear in the correct place (this will be trial and error but once you've done it a few times you'll get a feel for how much to tweak the values by. The rows in the list are the 'speeches' that the character can make which are specified by number, i.e. first entry is 1, second 2 etc.
The SpeechBubbleRegister command simply links the characters entity_id with the list, after that whenever you want a speech bubble simply call SpeechBubbleShow(e, number) where 'e' is the entity_id of the character and 'number' is the 'speeches' list entry you want to use. Remember that the call must be made every frame, as soon as you stop calling it the bubble will disappear. The reason for this is that the speech bubble needs to be moved to respond to player movements so it is always readable (as long as you are looking in the direction of the character of course!
You don't have to make the call from the characters script btw, you could have a central script controlling which character is speaking, in fact if you had two characters having a conversation it may be easier to do it that way, just remember that the 'e' value must be the one for the character doing the talking and not the entity_id of the trigger object.
You will notice that in the example code in ai_neutralSB.lua I control the action with time values and leave a short gap between speech bubbles, I recommend doing something similar; 1) because it reduces the chances of two characters trying to use the same speech entities, and 2) it's more natural, people usually try to avoid speaking over each other (unless having an argument) so another way you can give 'personality' to characters and create more depth to the game is have different characters pause for different lengths of time or have the speech bubbles 'time-out' at different rates for different characters.
Been there, done that, got all the T-Shirts!