Fixed. I now use the standard Java AfineTransform to change the vertices. This makes converting my existing code (Java2D) much easier because AfineTransform is used there quite frequently. See the example code below.
And of course. Thanks for the help 
public class GdxPerf implements ApplicationListener {
private OrthographicCamera camera;
private SpriteBatch batch;
private Texture texture;
private Sprite sprite;
private AffineTransform transform = new AffineTransform();
private float[] verticesSrc = null;
private float[] verticesDst = null;
private float[] src = new float[8];
private float[] dst = new float[8];
@Override
public void create() {
camera = new OrthographicCamera();
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("data/Alice.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(texture, 0, 0, 512, 512);
sprite = new Sprite(region);
sprite.setPosition(0, 0);
verticesSrc = sprite.getVertices();
verticesDst = Arrays.copyOf(sprite.getVertices(), sprite.getVertices().length);
transform = new AffineTransform();
}
@Override
public void dispose() {
batch.dispose();
texture.dispose();
}
@Override
public void render() {
Gdx.gl.glClearColor(0, 0, 0, 0);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
transform.setToIdentity();
transform.translate(50.0d, 50.0d);
transform.scale(1.5d, 1.5d);
transform.shear(0.25d, 0.10d);
transform.rotate(-Math.PI / 8.0d);
src[0] = verticesSrc[SpriteBatch.X1];
src[1] = verticesSrc[SpriteBatch.Y1];
src[2] = verticesSrc[SpriteBatch.X2];
src[3] = verticesSrc[SpriteBatch.Y2];
src[4] = verticesSrc[SpriteBatch.X3];
src[5] = verticesSrc[SpriteBatch.Y3];
src[6] = verticesSrc[SpriteBatch.X4];
src[7] = verticesSrc[SpriteBatch.Y4];
transform.transform(src, 0, dst, 0, 4);
verticesDst[SpriteBatch.X1] = dst[0];
verticesDst[SpriteBatch.Y1] = dst[1];
verticesDst[SpriteBatch.X2] = dst[2];
verticesDst[SpriteBatch.Y2] = dst[3];
verticesDst[SpriteBatch.X3] = dst[4];
verticesDst[SpriteBatch.Y3] = dst[5];
verticesDst[SpriteBatch.X4] = dst[6];
verticesDst[SpriteBatch.Y4] = dst[7];
camera.setToOrtho(false);
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(texture, verticesDst, 0, verticesDst.length);
batch.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
}