Glad to see some progress on this. I saw your post on GoodReads, I hope they response favorably.
Just a note on shelves. The 3 default shelves are "exclusive", which means a book can only be on one at any given time. Adding a book to "read" takes it off "to-read/currently-reading" for you.
I actually did some playing around with the GoodReads api this weekend. I put together a perl script (cause that's what I'm comfortable with) to fetch a user's shelf content, and update a custom column in calibre. I created a "tag" column in calibre with a value for each person in the family. I now run my script daily to fetch their "read" and "to-read" lists, compare those with the calibre db, and update the "read" custom column adding their name if they've read the book.
This lets me maintain a single library (it gets rsynced to their computers) with read tracking.
The final missing piece is an easy way to put a calibre book on a GoodReads shelf.
I had a bugger of a time dealing with comparing books between calibre and goodreads. Variations in title and author spelling, etc. ISBN helps, but not everyone placed the book on their shelf using the same ISBN.
This has been a big help. Now when I go to look for content to send to my reader, I can use a saved query to restrict calibre to all the books I haven't read, and then poke around by series/author etc. I can easily see which of those books someone else has read as well. I like to try to read things the kids are reading.