If I am understanding your question you want to hide/change the menu item depending on whether or not a person is logged in or not?
OK this is how I managed to how to hide content from guest users or logged in users.
Create a new 'Guest' group;
- Create a Guest Group in the User Manager
- Add a new Guest Viewing Access Level
- Change the default guest group in the User Manager options
There's a detailed guide here.
Then;
- Find the module you want visible for Guests > Edit > Set the Access to Guest
- Find the module you want visible for Registered Users > Edit > Set the Access to Registered
This should solve your access level issues.
In order to add the 'Hi {Username}' what I did was use NoNumbers Sourcerer and simply echo the $user->username
in the module title.
Sourcerer checks your php code to see if you are referencing any commonly used Joomla objects / variables, and then creates them for you. This means you don't have to create these variables yourself every time.
Perhaps not the cleanest method (compared to @Lodders) however it does work and is easily replicated for other modules etc...
Hope this helps!