As I understand GPL, your software can be sold for any amount you wish, but you must make the source code available to everyone without charge.
This is not a correct read of the GPL. You may sell your software for any amount that you wish, but you must make source code available to anyone to whom you give binaries for no additional charge. That person then has the right to redistribute your source code (and binaries, provided they also include the source) to third parties, and so it is effectively impossible for you to prevent the source code from ending up publicly available, if your users want it to be available.
However, in the case you describe, the company providing the software under the GPL is (probably) the sole copyright holder. The copyright holder, in general, is not bound by their own license.* They can do whatever they like with their software, including selectively licensing only the "core" of their software under the GPL. On the other hand, if the proprietary portions are derivative works of other GPL'd software, and the company does not own the copyright of that software, then the company might be infringing the copyright of that software.
* Think of it like this: A license is basically a (legally-binding) promise not to sue for copyright infringement, provided that certain rules are followed. Nobody is going to sue themselves for copyright infringement, so you don't need to give a license to yourself in the first place, much less follow the license that you give to others.