I'm just on my way out the door but I'll give some quick pointers.
Make the element the size of the background image to start with and don#t change its size or positioning on hover. Just change the background image on hover.
You need to make everything sit in the right place to start with and then when you hover you just show the background image without moving anything else around.
I'll be back tomorrow if you are still stuck (or if someone else wants to jump in :))