Just an untested idea - when you close trading house window, all filters gets reset using the TRADING_HOUSE:ResetAllSearchData() function.
As you want to keep old filters, what about hooking this function that it will not reset filters?
Something like:
Lua Code:
ZO_PreHook(TRADING_HOUSE, "ResetAllSearchData", function(self)
self:ClearSearchResults() --you don't want to keep old search results, so clear them
return true --true means that origianl function won't be called
end)