By definition, a heat map represent at first a density of point. You can further refine this density by assigning weights, but it is only a refinement. So, if with your current settings, a single point with no other points within 10 millimeters (on the screen) valued at 100,000 will be displayed with the same color as two houses within 10 mm of each others valued at 50,000 each.
You can't just filter by postal code or address either, as the heatmap uses a radius. So, if you have 2 adjacent house valued at 50,000 (different postal code/street corner etc), the heatmap will still use the color coded for 100,000. This is what we see on the screenshot showing a larger region. (note: since the maximum value is set to automatic, it becomes very hard to know the meaning of each color, which may be very different than anticipated ... maybe white = 1,000,000,000)
As the heatmap is behaving as it should, taking point density into account, you may want to consider other venues that would be directed by how you want
nearby transaction to be represented. The closest looking output would be an Inverse Distance Weighting (IDW) interpolation. You would first filter you dataset to keep the highest (or lowest? or average?) transaction per postal code (or whatever spatial unit your are using). See the doc or a tutorial on IDW.