You didn't answer the questions about how the app was structured. Was it originally linked to Jet/ACE tables? Are you using VBA or UDF functions in the queries that are slow? Are you joining heterogeneous tables (ie joining a SQL Server table to a Jet/ACE or Excel table)?
Pass through queries are not a panacea. They are slightly faster because they bypass ODBC but in most cases, you won't notice. Some places it does make a difference though. I develop applications primarily for use with SQL Server and I always use linked tables and bound forms. Occasionally, I create a view to optimize a join (views are compiled on the server so an execution plan has already been created and saved). When you send a query to the server, the server must first create an execution plan and that adds a small bit of time. If I have to do bulk deletes, I use TRUNCATE TABLE in a Pass through query. This eliminates all logging so the operation is very fast. If I am not deleting all rows, I use a normal DELETE query with criteria but if I'm deleting lots of records, I still will send it as a pass through query. And infrequently, I have created stored procedures to gather data for a complex report or dashboard form.
Access attempts to "pass through" ALL queries. You can defeat Access by doing some of the things I mentioned in the first paragraph. In that case, Access will request the entire table be brought down from the server and then apply the join and/or criteria locally if ODBC determines that it cannot replicate your query with T-SQL.
Forms bound to pass through queries are not updateable and subforms can't be bound to pass through queries.
Make sure that all your tables have primary keys. Use autonumbers/identity columns or if you have natural keys, you can use them but there are factions that think natural keys are the devil's spawn. I actually prefer them since they sometimes eliminate the need for a join but most tables don't have single field natural keys and I prefer a single field PK to a multi-field natural key. Joins are simpler and combos and listboxes don't work with multi-field unique IDs. They need single field primary keys so that has tipped me to using autonumbers/identity columns in almost all cases.
Make sure you have the necessary indexes defined. When you create tables in Jet/ACE, Access automatically creates indexes for foreign keys. SQL Server does not do this for you so you have to do it yourself. Don't go crazy with indexes because while they speed up searching and joins, they slow down updates.