when I first doing secondary blog cutsomize header background, the image uploading didn't work. So I changed permission of "blogs.dir" and "uploads" to 777.
Should I keep them stay 777 to enable other blogs functional, or should I change them back to 755 ?
but when I change back to 755, the uplaod stop working
You might want to contact your host. Its possible you do need 777 but not very secure. Might also look at the Owner/group for the directories. Might be an error in that. And try disabling plugins to see if one is causing this issue.
Otherwise, take a look at this post:
http://wordpress.org/support/topic/file-permissions-for-plugin
This was an issue where because of how the host has their servers they require using cgiwrap which is a workaround to not have to use 777 which is world-writeable. In case it applies to your host.