The Weapon script does not extend ObjectReference. Weapon extends Form, which is also the script that ObjectReference extends so both Weapon and ObjectReference branch off from Form. You could use the GetDisplayName function in the WornObject script. It is a bit different from the one in ObjectReference in that it would be called like this:
;GetDisplayName(Actor akActor, Int aiHandSlot, Int aiSlotMask)
stringT = WornObject.GetDisplayName(PlayerRef, 0, 0) ;Left hand
stringT = WornObject.GetDisplayName(PlayerRef, 1, 0) ;Right hand
By the way, you do not need to import scripts like you would in a language like Python. The Import statement just gives you access to global functions (functions defined in a script with the Global keyword) without having to type out the name of the script (unless leaving out the name of the script would make it ambiguous as a result of there being multiple scripts, imported or inherited, with a function with the same name).
;The definition of the Notification function in the Debug script (notice the Global keyword at the end).
;Function Notification(string asNotificationText) native global
;Without importing the Debug script:
Function SomeFunc()
Debug.Notification("How the function would be called without importing the Debug script.")
EndFunction
;When importing the Debug script:
Import Debug
Function SomeFunc()
Notification("How the same function could be called when importing the Debug script.")
EndFunction
;If the current script also had a definition for a function called Notification (or inherited one) and the Debug script was imported:
Import Debug
Function Notification(String asMessage)
;Some lines...
EndFunction
Function SomeFunc()
Self.Notification("This script's version of Notification")
Debug.Notification("The Debug script's version of Notification")
Notification("Compiler error. Ambiguous as to which version is to be used.")
EndFunction