You have not provided much information to use, but I will attempt to answer your questions. A valid, public IP address is one which the ISPs have agreed to route on the public Internet. For the most part, any IPv4 address, which doesn't fall into any of the ranges which IANA considers as not globally routable, is a valid, public IPv4 address.
If the IPv4 address you are using to get an invalid public IP address is from behind your router, it is likely an RFC 1918 private address, and those are not globally routable. In that case, any publicly routable address you may have is on the WAN interface of your router.
Some IPv4 and IPv6 addresses are considered Special-Purpose Addresses, and many of those are not to be routed on the public network. The IANA IPv4 Special-Purpose Address Registry has a table of these for IPv4, and it details if they can be routed or used globally:
The RIRs have run out of public IPv4 addresses to assign to ISPs, and the ISPs are turning to CGN (Carrier-grade NAT) to conserve their pools of public addresses. This means that your ISP could assign you a CGN or private address which is not globally routable. This has caused problems for some customers of the ISPs.
Geolocation is not particularly accurate. There is no standard, and each service does it differently using various data gathered from various sources. My address usually shows up over 1000 miles from my location (the headquarters of my ISP, not my location). A discrepancy of 40 miles is really not too bad.
Your first address is an IPv6 address, and it is a valid, public IPv6 address. If this address is coming back as an invalid public address, it is likely that you are using something which only accepts IPv4 addresses.
Your second address is a link-local IPv4 address, which is not a public IPv4 address, nor is it routable. It is listed in the IANA registry.
Your third address is a private address, per RFC 1918, and while it is routable, it is not publicly routable. If this address is from your ISP, your ISP is using CGN. The address could be assigned on your network. In either case it is not routable on the public Internet, and it must be translated, either by your router or by your ISP, to a public address before it gets to the public Internet.