If this helps this is what I have done now, having put together advice and hints from others with a little of my own knowledge.
Export each Calendar to a .ics file.
Install OS X Server on Macbbook Pro.
Set up a user on the server called syncuser with associated password.
Limited this user to access only Calendar and Contact services.
In Calendar app on Macbook connect to Calendar service via Preferences>Accounts.
In the left hand pane of Calendar there will now be an OS X Server section. Create a calendar to match each of your 'ON My Mac' calendars and import the relevant .ics file into each.
On the iPhone in settings>mail,contacts,calendars create a calendars account and enter the syncuser details. There should now be duplicate events if you elected to keep the original data on the iPhone. At the bottom of the screen there are now 3 links:- Today Calendars Inbox. I don't remember theses being there before.
If you navigate to a date other than today, touching Today takes you straight back to today.
Touching Calendars lets you choose which calendars to use, turn off the display of those 'From My PC' and you will be left with only the events synchronised from your mac.
Now in Contacts>Preferences>Accounts on the Mac create a contacts account using syncuser credentials again.
In the left hand pane of Contacts there will be an 'All OS X Server' section. The instructions I found (Ithink they were pre-Mavericks) said select all contacts in 'All On My Mac' and drag them to 'All on OS X Server' THIS DOES NOT WORK. Iinstead, go back to Contacts>Preferences>Accounts and create another contacts account just like before. This will create an 'All servername.home' section in the left pane and you CAN drag contacts to this.
I think the first one logs in to the server and exposes the services available and the second one connects to the contacts service.
Finally, back to the iPhone in settings>mail,contacts,calendars create a contacts account, you can keep the local data again, and in Contacts>Groups turn off 'All on My Phone'.
That's it.
A suggestion for those who live away from access to internet services or who travel a lot, obtain a small wifi router and set up access to it from each of your devices, I would also limit access to it to the MAC address of each of your devices. You should now be able to sync locally over wifi wherever you are, you don't need to connect it to broadband. It's a pain having to carry another piece of kit rather than a cable but at least they are small and if I am correct that this would work it solves the problem of local sync.
Good Luck
Chris.