Welcome to the Ranch
I see you haven't fallen into the trap of making any of your variables static, as happened in last year's post. But if you have a fence 10 yards long, it won't have ten fenceposts; it will either have nine or eleven.
In the setHeight method, don't return anything. Consider whether you should have a setXXX method in the first place; I probably wouldn't. But if you are going to have a setXXX method, you should give it a documentation comment explaining what range it will permit. Don't return false for the wrong range: throw an Exception.
It would be better to use constants than those number literals 2 and 5.
Don't write == true or == false which are both poor style and error‑prone if you write = by mistake. And != true looks even worse.
Never
if (b == true) ...
always
if (b) ...
Never
if (b == false) ...
always
if (!b) ...
Some of your variables are poorly names: what does fenceCount mean? And bFence is even harder to understand.