BillboardGuis are somewhat like your name tag in game. They are GUI elements that hover over specified objects. Whether the GUI is a direct child of the object or just has the adornee set to a specified object in workspace. Some users have used BillboardGuis to make raid timers, putting rankings above a person's head, or to even recognize a player as being an admin or MVP.
BillboardGuis are similar to ScreenGuis and SurfaceGuis in terms of being a holder to display actual GUI elements such as textlabels, images, frames, or other objects. Some properties that come along with BillboardGuis are as follows.
####Adornee
Used to set a brick to display the Billboard Gui. If you want to maintain full client interaction, then like SurfaceGuis, you need to set the adornee property to a part you want the GUI elements to display on and place the GUI in PlayerGui.
####AlwaysOnTop
Self explanatory, it will keep the BillboardGui on top of all objects that might interfere with it. Like in the player name tags in game Occlusion property, if the property is set properly you can have the game determine if the Gui shows up through bricks or not.
Other properties, you can explore here.
######Hopefully this answer helped. If you have any questions, feel free to post them in the comments below.