You are a direct employee. You have an explicit "at will" clause in your contract of employment. You are ABSOLUTELY allowed to pull the eject lever, blow the canopy, and hit the silk whenever you want, and they are ABSOLUTELY allowed to shoot you down whenever they want. The latter is the risk of at-will employment, the former is one of the rewards.
You are currently assigned to work at a particular Client site, and you are less than completely happy about it. The contract between the Client and the Shop (your employer) has three more months to run.
Now, ANYTHING can cause the 1-year contract between Client and Shop to become unfulfilled and unfulfillable. You could get bit by a bus. It might be a physical bus, or it might be a virus, or something else. My current employer lost one critical engineer to a traffic accident, and another one to a nasty flu strain. Some years ago, the manager of the Subway near where I was working was an accountant who'd formerly held a very high position at a big name firm, until he had a nervous breakdown. He was recovering, and his company was doing everything it could to help, including making sure that there would be a comparable job for him when he was ready to come back. Meanwhile, he was running a Subway, making sandwiches, and building himself back up.
These things can and do happen, and companies have to have disaster recovery plans in their files for when they do.
If you are a good employee, doing good work, it is absolutely in their interests to keep you aboard and happy. That absolutely does include considering moving you to a different Client and locale, BECAUSE, if they don't, someone else might, and you could and would then leave, taking your expertise and denying them the profits they are currently making from your work.
ABSOLUTELY you should start by talking with your employer, about being less than happy with your current Client situation, and see if they can work something out. They may not be able to do anything, if it would entail putting someone else in at the Client. They may offer a raise on your salary, to compensate at least partially for the other issues. You lose absolutely nothing by giving them the opportunity.
You also lose nothing by pointing out to your Shop that their contract with the Client is up in 3 months, and you would like to know what their plans are in case the Client chooses not to extend it. Losing the Client contract is almost as bad as losing you: either way, the money stops coming in.
Beyond that, it does no harm to be looking around. If you are looking for long-term permanent employment, odds are that the interview and hiring process will take a while. Also, you are free to tell a prospective new employer that you are not yet available, but may become available next quarter, and you are doing long-lead exploration.
Go ahead and talk with your Shop. Go ahead and start looking around. Best case, your Shop finds a way to move you to something/someplace better, no disruption, everybody is happy, but that won't happen until and unless you give them a chance to say "yes".