This is VB.NET but you should be able to translate.
One way I create text labels this way:
Dim Text As ESRI.ArcGIS.Display.ISimpleTextSymbol = New ESRI.ArcGIS.Display.TextSymbol
Dim esriColor As ESRI.ArcGIS.Display.IRgbColor = New ESRI.ArcGIS.Display.RgbColor
Dim fntDisp As stdole.IFontDisp
esriColor.Red = 0
esriColor.Blue = 0
esriColor.Green = 0
fntDisp = New stdole.StdFont
With fntDisp
.Name = "Arial"
.Bold = false
.Italic = false
.Strikethrough = false
.Underline = false
.Size = 15
End With
Text.Font = fntDisp
Text.Color = esriColor
To create symbols I use the "Size" property of the IPictureMarkerSymbol, ICharacterMarkerSymbol, or ISimpleMarkerSymbol. Here is an example.
Public Function CreateSimpleMarker() As ESRI.ArcGIS.Display.ISimpleMarkerSymbol
Dim Clr As ESRI.ArcGIS.Display.IRgbColor = New ESRI.ArcGIS.Display.RgbColorClass
With Clr
.Red = 255
.Green = 0
.Blue = 0
End With
Dim SimpleSymbol As ESRI.ArcGIS.Display.ISimpleMarkerSymbol
SimpleSymbol = New ESRI.ArcGIS.Display.SimpleMarkerSymbolClass
With SimpleSymbol
.Style = ESRI.ArcGIS.Display.esriSimpleMarkerStyle.esriSMSCircle
.Size = 10
.Color = Clr
.XOffset = 0
.YOffset = 0
End With
Return SimpleSymbol
End Function