Object origin/pivot point perpendicular to an object
Your question is a bit wrong and unclear, imho, for a few reason, I try to explain why:

You wrote "Object origin/pivot point" as to be "not perpendicular" but a point has no dimensions, and thus it can't be "perpendicular" or not to anything.

What you mean is "the three axis" that come out of the pivot/origin point. And this makes a big difference, because there are different "sets" of those axis, depending on the coordinate systems you refer them to. And they are specific of that 3d view area.

Those are known as "transform orientations", because they help you, pointing in the possible transform operations you can perform on the object.

By default you see the "global" orientation, but you can choose from a set of predefined orientations. 

Here you see the same object, at the same time, shown in two different 3d view areas, with two different "transform orientations": note the effect on the pivot/origin axis



adding to this, in the properties panel (right side pressing N) at the bottom there's a dedicated panel, where you can also switch them, but here you can create a "custom" orentation, at your taste, too! Look at the small "+" button in the lower right corner:



In object mode those axis are always "cast" from the object's pivot/origin point but, in edit mode, that pivot is where the "selected" (average) part of the mesh/curve/other is:



Adding another example the "view" orientation makes those axis always "perpendicular" to your view:



in edit mode, you can spot the difference that the "normal" orientation can make:



here you see both orientation at the same time, again, but in edit mode



When you tranform the object, in object mode, or its mesh, in edit mode, you can be helped by those axis, because both the 3d manipulator (grab, rotate and scale) and the "visual guide" you get when you put transform constraints (pressing the axis letter).

see how all of the manipulator modes adapt to the selected transform orientation:



And, if you choose to grab a face - in edit mode - along X along "normal" transform coordinates

if you have this ("local" transform orientation mode) in edit mode:




when you press G, the transform start without contraints (you can grab it anywhere)
if you then press X a "visual guide" appears, locking the movement along "global" X, always, independently from your "transform orientation" choice in that 3d view area





if you press X again, the visual guide, and locking, is now bound to your choice...




eg: if you choose "local", pressing XX will guide and lock your transform along "local" X

The blender manual has a whole chapter dedicated to this argument, explaining every single bit: https://docs.blender.org/manual/en/dev/editors/3dview/object/editing/transform/control/orientations.html

Now, learn how to "correct" them, imho you should keep in mind (and specify) which orientation you wish to manipulate. A comment above points you to another similar question, with a solution. Try that and, if it doesn't work, improve this answer adding more details or open a new one, if it is a too different case. Hth