OK. So let me describe the philosophy and the possibilities of label placing in yEd.
Each node and each edge can have multiple labels. The positions of the labels are not stored in absolute coordinates since moving a node should move its labels, too. Moving a label with its node could be achieved by storing the position of the label in relative coordinates with respect to the node. However, yEd uses a more sophisticated approach.
(In the following, I will talk about node labels. However, edge labels are treated similarly.)
There are a number of different models for placing a node label, e.g. "Sides" or "Internal". Each label model consists of a number of candidate positions for the label, e.g. "North", "South", "West" and "East" for the "Sides" model. These positions are symbolic descriptions of the placement of the label. If you specify that a node label should be positioned beside the node to the West, then yEd computes an according position dynamically taking into account the current position of the node and the sizes of the node and the label.
The model and the position of a node label can be set in the "Label" section in the "Properties View" using the "Placement" field, if the node which owns the label is selected. Labels can also be selected directly except for internal node labels (the default). If you want select an internal label, you first have to change its model to an external model.
You can change the position of a label within its current label model by dragging the label around with the mouse. While you do so the possible positions are indicated by empty boxes. You can assign a new position by dropping the label into one of the boxes. There is a label model, called "Free", which allows to place a label at any position. For this model no candidate boxes are displayed, since every position is possible.