You seem to be running into the 2000 item limit for BCS, which you could increase but may still not be able to resolve your issue completely.
Here is a similar question: BCS External Content Type with 20,000+ items (O365)
The accepted answer says:
I had a similar issue this morning, with an external dataset with
around 100,000 records. The way I worked around it was to create a SQL
stored procedure to do the Read List operation, rather than querying
the data directly. The Read Item operation can still be linked
directly to the list, rather than requiring a second stored procedure.
However I would also point you to this blog, which uses a slightly different approach to get the functionality working.
The data I originally had received for the cities and towns was in a
CSV file. I found a nice little site that would convert the CSV format
to JSON (bookmark this one; you’ll need it in this JSON-oriented
Once I had the JSON file uploaded to a Document Library, the code
below is what I used to set up the autocomplete. We wanted the
autocomplete to allow multiple choices, so there’s a little monkeying
around to enable that. It wasn’t tremendously peppy (19,000 cities,
after all), but it worked.
So if your data is static you could just jump over to Marc's blog and use that code. If it isn't there is still some work you'd need to do to get some sort of cache running that gives you JSON dynamically. But in that case I think the first option is a better choice.