Fossi in te non trarrei conclusioni senza aver fatto opportune considerazioni... ed io non ne ho viste.
E' vero che la situazione Client-Server tendenzialmente può avere riduzioni di performances in senso relativo, ma non è una considerazione tecnica questa, come è regola di BUONSENSO sviluppare per ridurre al minimo indispensabile il traffico dati, e va da se che tutto quello che hai detto va da tutt'altra parte...
Chi sviluppa Client-Server senza le adeguate conoscenze commette SEMPRE gravi errori tecnici che vanificano l'esistenza di un RDBMS lato Server... lamentandosi della lentezza...
Quindi prima di pensare a cose serie, fossi in te, farei un CHECK su queste cose apparentemente banali:
1) Ovviamente, stiamo parlando di un DB Normalizzato correttamente con la adeguata definizione di CHiavi Primarie e Chiavi Esterne nonchè di Indici...?
2) Hai realizzato una Connessione stabile con un Recordset sempre Aperto, anche vuoti, affinchè la Connection non continui a cadere...?
3) La dove hai delle Query con criterio, hai fatto attenzione che nella WHERE no nvi siano Oggetti Locali da risolvere...?
Es:
SELECT * FROM T1 WHERE Id=Forms!NomeForm!ControlloId
Query come queste fanno inorridire e fallire l'esistenza del Server SQL, in quanto non essendo capace di risolvere il predicato, lo rimuove e restituisce ad Access tutto il Recordset delegando poi JET ad applicare la WHERE... quindi SQLSERVER Inutile.
E questo vale per tutti i Riferimenti LOCALI, FUnzioni di Aggregazione sui domini, o Funzioni UDF Locali...
4) Sapendo che le COmbo sono oggetti ReadOnly, hai valutato di alimentarle con Query PassTrought
5) Hai usato gli strumenti di Managment per analizzare i piani di esecuzione delle Queries...?
6) Non hai relazionato le LinkedTable anche in LOCALE...? (spero di no)
Questi 6 punti, al 99% dei casi sono sempre disattesi... o enormemente sottovalutati per non conoscenza, quindi ci si trova con la Ferrari in prima...