you may want tocheck if the rules have been applied (no "apply" button in upper right)check the "automatically generated rules, you have 9, maybe 1 is in conflictis it safe to assume you have set IP as source 172.16.16.23/32 and destination 172.16.16.122/32screen shot of the actual rule setting would be nice.
Are you running a transparent proxy? Then the webserver won't be accessed directly and your rule is not triggered, instead your proxy connects to your webserver.In This case you would have to deny your webserver in proxy ACLs.
could you try set IP as source 172.16.16.23/32 and destination 172.16.16.122/32 in the your firewall rules for bothand try connecting if they could still see each other...that does not answer why /24 was not blocked. but just to see if specifically setting the IP will not also.you cold try to press "inspect", upper right and see if your rules is even being evaluated...btw your opnsense server is 172.16.16.16, that is your local gateway? meaning opnsense is that one giving out LAN ip address (172.16.16.0/24)?
by using /24 your actually blocking your whole subnetthat why it has alot of evaluationsbut does not answer why the connections are not being blocked...have you set each client machine to have the gateway of 172.16.16.16?if they dont have a "gateway" it is possible that they are connecting "locally" via there static IPs