I would expose a public property in your masterpage e.g. ShowWorkText as String. This property sets (or reads) the Literal's Text. It searches the control in the Placeholder that is accessible directly. Then your code is more readable and more maintainable. It's also safer if you decide to replace the Literal with a TextBox for example. You have to cast the page's Master property to the actual type of your master to access that property.
Since the literal is in a UserControl you should use the same approach to expose the property there. Then the master accesses it instead of the page.
In the master (of type Site):
Public Property ShowWorkText As String
    Get
        Dim navigationControl As Navigation = Me.placeHolderNav.Controls.OfType(Of Navigation)().FirstOrDefault()
        If navigationControl IsNot Nothing Then
            Return navigationControl.ShowWorkText
        End If
        Return Nothing
    End Get
    Set(value As String)
        Dim navigationControl As Navigation = Me.placeHolderNav.Controls.OfType(Of Navigation)().FirstOrDefault()
        If navigationControl IsNot Nothing Then
            navigationControl.ShowWorkText = value
        End If
    End Set
End Property
in the UserControl (of type Navigation, LiteralShowWork is the litaral):
Public Class Navigation
    Inherits System.Web.UI.UserControl
    Public Property ShowWorkText As String
        Get
            Return LiteralShowWork.Text
        End Get
        Set(value As String)
            LiteralShowWork.Text = value
        End Set
    End Property
End Class
in the page that want to set the text (as mentioned Site is the type of the master):
Dim site As Site = TryCast(Me.Master, Site)
If site IsNot Nothing Then
    site.ShowWorkText = "hello"
End If