I have to make an activity diagram for a hair salon scenario, I think it may be bad practice or even fully incorrect to use a join node and a fork node straight after one another as I have done.
Is this allowed?

I have to make an activity diagram for a hair salon scenario, I think it may be bad practice or even fully incorrect to use a join node and a fork node straight after one another as I have done.
Is this allowed?

Those join nodes will hang forever, waiting for the paths not taken from the decision nodes to offer tokens. Replace them with merge nodes.
To be able to make correct activity models, you should read Conrad Bock's six-part series of articles on the UML 2 Activity and Action Model, especially part 6.