When I first connect to the samba share from any windows client, it is very slow. But once it's open, it becomes fast until I leave the connection unused for a while. Are there any settings which need changing to sort this out?
That sounds like Samba and the Windows clients are taking a while negotiating the initial connection. Windows quietly closes unused connections in the background, which is why you're seeing the slow-downs after things have been unused; Windows is re-opening a connection. The two biggest areas that cause problems here are: