First, search is not about keywords, it is about whole language.
Your results are exactly what I would expect.
When a search query is short, you are tying the hands of the search engine. It can be near impossible for the search engine to figure out what you want. Search engines do not match keywords. It matches intent. With the search childcare Sydney the assumption made is childcare in Sydney which follows a common semantic locale search. Reversing the order as Sydney childcare does not make the same assumption and relies more on the semantic meaning you have given which virtually none at all.
I have written on this exactly here. For SEO should you primarily optimize for "<city> <service>" or "<service> in <city>"?
You have to understand how semantics works with subject, predicate, and object. You also have to understand how fact links work and why in is assumed in locale searches. I will not repeat it all again, I instead invite you to read the linked answer for a full understanding, however you will easily see how one search works as expected and the other does not.
I will add one more thing. People naturally type their search queries exactly how the think. For most of us, and especially for English speakers, we think in terms of broad to specific. For example, childcare is broad and Sydney is specific. We also think what where. What? Childcare. Where? Sydney. In other words, your first query is natural. Semantics is based on many things including understanding text by analyzing what is written along with how people communicate including the smaller details I have included here. It is not just a science about the written word, but also a science that includes the functioning of the brain. Semantics has all this hard coded into it.
In short, there is nothing to fix except expectations.