K.S.
Have you been to Saugatuck? There are a lot of B&Bs there, and it is a cutesy walking town (with tourists).
Amazingly, Grand Haven doesn't really have many hotels on the beach. But I'd pick Grand Haven over St. Joe's.
I'd try to find a time share condo or cottage if money isn't an issue. There are not many extraordinarily nice places on the big lake. Mostly camping and private property.