1.You should use SQLite for local database because of its main features: one of the fastest database for simple CRUD operations, no installation is required (just a simple copy), easy to use from .NET.
2.For transferring data over the internet you should use WCF with net.tcp binding because is the fastest way for transferring data over the internet in .NET application; you have also options to secure your data by using SSL.
Here is an article about this subject:
Use Mutual SSL Authentication in WCF[
^]
3.When transferring the data read from database, between WCF service and WCF client, you should use pagination - so you should read and send pages of maximum 700 records.